Developing a system for the real world use is not like developing a system for a university project. If it is a university you don't have think anything like component re-usability, extend-ability, flexibility with changes etc..
But in real world you must develop your product to match the real customer needs. You must satisfy your customer otherwise you won't get paid. The product should flexible enough with the changes the client introduces. Simplicity must be promoted and complexity must be reduced because you're not the one who will work with the system on the product's lifeline. There are many aspects to think about. Below I Pointed out some specific things needs to be considered when developing for restaurant chain ordering system.
- The products might change anytime. The application must support changeability
- New functions might be added. The product source code must provide extendable interfaces to adapt to those future functionality changes.
- The product should support state of the art technologies. Smart phone market always introduces new technologies and features and the system should be adapt to that
- Version Control system must be kept to track version changes, releases, and modifications by developers
- Market should be analyzed and usability techniques, heuristic analysis must be used to track the customer satisfactions.
- Putting a light survey button would be useful to track the service satisfication. A feedback form would also be benifitlal but the designers should be aware that these are not priority user tasks and always should provide as a alternative flow.