Factor in cost. Systems, like anything else, can be built to suit a range of budgets. More functionality, bigger scale, better quality and flexibility, among other tangible and intangible perceived needs, are all desirable. But they all contribute to higher cost. It is extremely important to perform a careful cost-benefit analysis as part of the system specification process.
Domain knowledge is important.
Make sure that the designers of your system understand your business. Software engineering is a process of abstracting real world concepts and describing them using computer languages. If a developer fails to understand your business concepts, the quality of the software will substantially suffer. Build in rapid increments. Build in short rapid phases in order to incorporate important user feedback, reject bad decisions early, modify specifications to accommodate new business requirements midstream, and deliver useful targeted functionality ahead of full system completion.