How does a project team plan a project so that it can deliver software on a budget?
Here are some of the specific features of a well-planned project:
A Software Development Plan: This plan maps a course for the
project. Committing the plan to writing allows the project's stakeholders
to refer to the plan throughout the project.
Project estimates: Project estimates provide a foundation for
project plans. A careful estimate leads to scoping the project appropriately,
which in turn leads to budgeting, staffing, and scheduling
the project appropriately. A shoddy estimate can undercut
the project in all these respects, making it difficult to complete the
project successfully and impossible to complete it efficiently.
Revised estimates: Revised estimates created at the end of each
major phase of the project allow for mid-course corrections and
help to keep the project on solid footing.
A Quality Assurance Plan: A Quality Assurance Plan that includes
both technical reviews and testing assures that the project will not
succumb to a costly and defect-ridden test, debug, and correction
cycle.
A Staged Delivery Plan: A Staged Delivery Plan defines the order
in which the software will be constructed. It ensures that the software
solution is developed to both maximize the value to the
customer at each stage and minimize the risks to the project.
In addition to the explicit planning activities I just listed, several of a
software project's other major activities are also planning activities, though
they aren't usually thought of that way.
Requirements development: Requirements development identifies
in detail the problem that the project team is trying to solve. It
amounts to planning to solve the right problem.
Architecture: Architecture is a high-level specification for the way
in which the problem will be solved. It is a plan to build the right
solution to the problem.
Detailed design: Detailed design is a comprehensive plan of what
the project is going to build. It is a plan to build the right solution
in the right way.