1. A detailed outline of the application (what exactly does it do including complete flaw charts, look and feel, etc.) and a way to change that outline if it becomes necessary.
2. Development Milestones that are clear and objective enough to reduce the chances of any disagreement about the status of their completion.
3. A description and schedule of payments according to the milestones you set, or defined dates for payment, as relevant.
4. Financial or other sanctions in the event of a delay in completing the milestones.
5. A list of services related to the development, such as technical support, hosting, additional developments, and so on — and their costs.
6. The right to receive the source code on demand both during the development and after completion.
7. Application acceptance tests and a clear mechanism for making changes and cancelling the agreement if necessary.
8. Your full ownership of all rights in the app and any other work products or derivatives of the work.
9. A license (for the developer) to use any third-party software used by the developer during development.
10. An obligation from the developer not to develop a similar application for your competitors, at least for a limited period of time.
11. The right to terminate the agreement at any time and for any reason subject to payment for any part of the work that has been completed to your satisfaction.
12. A confidentiality commitment that protects any business information divulged to the developer during the development.
13. The undertaking of the developer to commit his or her employees to obligations similar to those reached with you.