Software Project Survival Guide

NASA SEL's Estimation Procedure

Adapted from Manager’s Handbook for Software Development, Revision 1. Document number SEL-84-101.
Greenbelt, Maryland: Goddard Space Flight Center, NASA, 1990.

Project
Phase
Input Data
for Estimate
Size
Estimate
Effort
Estimate
Schedule
Estimate
Uncertainty
Range 1
End of
Requirements
Analysis
Number of
Subsystems
11,000 lines
of code2
per subsystem
3000 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
slightly modified
(N) or reused
verbatim (R) units
Lines of
code = 200 *
(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)
Add 43% to
effort already
expended (to
compute
effort to
complete)
Add 54% to
schedule already
expended

+10%

-9%

End of
System
Testing
Effort
expended
to date
Final product
size has
been reached
Add 11% to
effort already
expended
(to compute
effortto
complete)
Add 18% to
schedule already
expended

+5%

-5%

1To 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 "Line of code" includes all source statements, including comments and blank lines