17.5 An Example of a Standardized Estimation Procedure from an Advanced Organization

17.5 An Example of a Standardized Estimation Procedure from an Advanced Organization

Table 17-5 shows the estimation procedure used by the NASA Software Engineering Lab (SEL), one of the world's most advanced software development organizations.

Table 17-5: NASA SEL Estimation Procedure

Inputs

Outputs

Project Phase

Input Data for Estimate

Size Estimate

Effort Estimate

Schedule Estimate

Uncertainty Range [1]

End of requirements analysis

Number of sub systems.

11,000 lines of code [2] per subsystem.

3,000 hours per subsystem.

Multiply number of subsystems by 83 weeks and divide by number of staff members .

+75%

-43%

End of preliminary design

Number of functions and/or routines (units).

190 lines of code per unit.

52 hours per unit.

Multiply number of units by 1.45 weeks and divide by number of staff members.

+40%

-29%

End of detailed design

Number of new and extensively modified units (N).

Number of reused and slightly modified units (R)

Lines of code = 200 x (N + 0.2R)

0.31 hours per line of code.

Multiply lines of code by 0.0087 weeks and divide by number of staff members.

+25%

-20%

End of implementation

Current size in lines of code.

Effort expended to date.

Schedule expended to date.

Add 26% to current size (for growth during testing).

+10%

-9%

End of system testing

Effort expended to date.

Final software size has been reached.

+5%

-5%

Source: Adapted from Manager's Handbook for Software Development, Revision 1 (NASA SEL 1990).

[1] To allow for staff turnover , growth in requirements, and so on, conservative management practice calls for using estimates that lie between the predicted value and the upper bound.

[2] "Lines of code" includes all source statements, including comments and blank lines.

The most noteworthy aspect of the NASA SEL's estimation procedure is that it requires less work to create a more accurate estimate. This is representative of a more general rule that, the more sophisticated your estimates become, the less effort you will need to create accurate estimates.

The specific numbers in this estimation procedure are specific to the NASA SEL. They have been calibrated through decades of data collection and analysis and are for use by a highly sophisticated development organization. The specific numbers won't apply to other organizations.

The differences from the procedures that can be used by less advanced organizations are instructive, as are some of the similarities:

• Emphasizes counting and computing when possible, rather than using judgment The NASA SEL procedure is interesting in that even early-in-the-project estimates are based on counting and computing rather than judgment. Effort and schedule are never estimated directly.

• Calls for use of multiple estimation approaches and comparison of results This procedure is distinctive in that it does not call for the use of multiple approaches at any one point in time. The NASA SEL has been collecting and analyzing historical data long enough that it can produce accurate estimates with low effort.

• Communicates a plan to reestimate at predefined points in the project Table 17-5 indicates several points in the project at which new estimates will be created.

• Defines how the required estimation approach changes over the course of a project Each row in the table represents a different estimation approach for a different time in the project.

• Contains a clear description of an estimate's inaccuracy The right-most column in the table contains the plus and minus qualifiers used to adjust the nominal estimate. The first footnote presents a good general guideline: "Conservative management practice calls for using estimates that lie between the predicted value and the upper bound."

• Defines when an estimate can be used as the basis for a project budget That element is not expressed in this procedure.

• Defines when an estimate can be used as the basis for internal and external commitments That element is not directly expressed in this procedure. A noteworthy aspect of the table is that the first row in the table is for "End of requirements analysis." In the NASA SEL's terminology, "requirements analysis" is an activity that occurs after "requirements specification." Thus the table implies that the first time in the project an estimate can even be created is relatively deep into the Cone of Uncertainty.