For each software project a plan is developed, according to a documented procedure, that covers the software activities and commitments. The requirements allocated to software form the basis for the software development plan. Estimates for critical computer resources are documented, reviewed, and agreed to. All affected groups and individuals understand the estimates and plans and commit to support them. Senior management reviews the estimates and plans before external commitments are made. Software risks associated with the cost, resources, schedule, and technical aspects of the project are identified and evaluated, and contingencies are documented. Planning and estimation data are collected for use in planning subsequent projects and for input in management oversight review meetings.