Step Eight: Generate A Project Plan
The process of generating a project plan includes taking the estimate and allocating the cost and schedule to a function and task-oriented work breakdown structure. Models such as SEER Client for Microsoft perform this function automatically. The eight major software development phases
are: (1) concept, (2) acquisition, (3) requirements, (4) design, (5) code and unit test, (6) integration, (7) acceptance, and (8) post deployment.
Determining Costs from Effort Estimates
At this point in the estimation process, you should have a reasonably accurate projection of your project's size and required effort, that is, an estimate of the number of person-hours by component and a sum of these projections, and you can now begin to price the estimate. As software estimation models generally account only for costs related directly to development, you may need to translate the required effort to a cost and finalize the estimate by adding in essential nonlabor costs. You can do so by answering the following questions:
What types of individuals do I need and when do I need them?
Identify the specific personnel requirements by task area (direct software management, software systems engineering, design, programming, configuration management, quality assurance, etc.). Develop a strawman schedule from the work breakdown structure or a staffing plan such as the one produced by SEER-SEM.
How experienced do they have to be? Assign specific staff levels to the task requirements and identify the level of experience required to satisfy the task. Some of the automated cost models will identify the tasks and develop a task-based schedule, which will minimize but not eliminate all of the work required to produce the software development plan.
Travel costs, personnel costs, depreciation of tangible capital assets, fees associated with training and independent verification, inflation factors, and overhead all must be taken into account.
Estimating Schedule in Calendar Months
Projecting a schedule requires development of a preliminary work plan that describes the tasks and their sequence, dependencies and constraints that will limit scheduling options, cost and schedule trade-offs that are essential in defining a viable schedule, projected delays due to nonavailability of resources or other factors, and additional items such as customer-unique requirements. While the schedule need not be considered final, it should be sufficiently well structured to provide a high probability that the projected calendar months reflect how long the actual project will take. Just as with effort, the estimate should describe a range characterized as least, likely, and most. Effect of Management and Process on Estimates
Management and process maturity are critical factors in the projection of productivity. They affect the personnel capability parameters or calibrations in models such as SEER-SEM. A rating based only on process maturity factors can make any estimate invalid unless the risks are managed and controlled or unless the model is run with a higher confidence level. Management factors determine the project environment and how focused it will be on addressing and completing project commitments. Process maturity will determine how effective the organization will be in meeting its stated productivity targets.
Impact of Software Project Management on Software
To avoid tomorrow's catastrophes, a software manager must confront today's challenges. A good software manager must possess a broad range of technical software development experience and domain knowledge, and must be able to manage people and the unique dynamics of a team environment, recognize project and staff dysfunction, and lead so as to achieve the expected or essential result. However, too often software managers are not equipped with these necessary skills and therefore the projects they manage run into predictable problems.
Many managers of software projects were promoted from within the company and have no training other than their engineering backgrounds. By the time the dust settles, the problems he caused have resulted in poor cost and schedule performance. Some managers, mainly due to lack of experience, are not able to evaluate what effects their decisions will have over the long run. They either lack necessary information or incorrectly believe if they take the time to develop that information, the project will suffer as a result. Other managers make decisions based on what they think higher management wants to hear. This is a significant mistake. A good software manager will understand what a project can realistically achieve, even if it's not what higher management wants. His job is to explain the reality in language his managers can understand. Both types of "problem manager," although they may mean well, either lead a project to an unintended conclusion or, worse, drift down the road to disaster.
Software management problems have been recognized for decades as the leading causes of software project failures. In addition to the types of management choices discussed above, three other issues contribute to project failure: bad management decisions, incorrect focus, and destructive politics. Models such as SEER-SEM handle these issues by guiding you in making appropriate changes in the environment related to people, process, and products.
Effect of Software Processes on Software Development Plan
If you want to understand the effects of improving your organization's software development processes, consider that, on average, organizations experience a 4 to 11 percent increase in productivity for each increase of one level in SEI CMM maturity. We should point out that just receiving a certification is not a silver bullet to improved productivity. Careful adherence to certified processes by trained professionals is required; and not all teams will achieve such outstanding productivity even when trained.
Step Seven: Estimate Validation & Review
Step Nine: Document Estimate and Lessons Learned