Software Project Survival Guide

Sample Informal Estimation Procedure

I. Pre-Requirements (Product Concept) Time

  • 1. Create at least one estimate using each of the following approaches:
    • a. Number of Subsystems computation
      • i. Estimate the number of subsystems.
      • ii. Calibrate estimation software using historical data from within our organization.
      • iii. Estimate the nominal effort and schedule using a commercial estimation software package.
    • b. Gut Instinct comparison with previous projects
      • i. Estimate the technical scope of the new system as a percentage of the scope of a previous system("Relative Size")
      • ii. Compute nominal schedule and effort for the new system by multiplying the schedule and effort of the previous system by the Relative Size of the new system.
    • c. User Interface Components comparison with previous projects
      • i. Estimate the number of dialog boxes (B) of the new system as a percentage of a previous system.
      • ii. Estimate the number of graphs and reports (R) of the new system as a percentage of a previous system.
      • iii. Estimate the number of tables in the system’s database (T) compared as a percentage of a previous system.
      • iv. Compute a multiplier (M) as follows: M = 0.35 * B + 0.35 * R + 0.30 * T
      • v. Compute nominal schedule and effort for the new system by multiplying the schedule and effort of the previous system by the multiplier (M) of the new system.
  • 2. Compute nominal effort and schedule estimates (N) for the new system as average of the estimates a, b, and c.
  • 3. Compute estimate ranges as from 0.6 N to 1.75 N.
  • 4. Estimates must always be presented as ranges. The single-point nominal estimate developed for use in these calculations should not be presented.

II. Pre-Architecture (Post Requirements) Time

  • 1. Update each of the estimates I-1a, I-1b, and I-1c. Create an average estimate "I-average."
  • 2. Create a Function Points Estimate
    • a. Compute function points based on requirements specification
    • b. Calibrate estimation software using historical data from within our organization.
    • c. Estimate the nominal effort and schedule using a commercial estimation software package.
  • 3. Compute nominal effort and schedule estimates (N) for the new system as average of 2c and I-average.
  • 4. Compute estimate ranges as from 0.7 N to 1.4 N.
  • 5. As in Step I, estimates must always be presented as ranges.

III. Construction (Post Detailed Design) Time

  • 1. Build a bottom-up developer based estimate
    • a. Have each developer estimate the effort required to design, code, and unit test the modules he or she will be responsible for.
    • b. Add up the individual module estimates.
    • c. Multiply the sum by 1.3 to account for forgotten tasks and developer optimism.
  • 2. Compare 1c to II-3. Compute a nominal estimate as 2/3 the higher estimate + 1/3 the lower estimate.
  • 3. Compute estimate ranges as from 0.8 N to 1.25 N.
  • 4. As in Step I, estimates must always be presented as ranges.
  • 5. If cost/schedule tradeoffs are desired, they may be computed as follows:
    • a. Shorter schedule: the schedule may be shortened 20% in exchange for 50% more total effort.
    • b. Reduced cost: total effort may be reduced 50% in exchange for a 25% longer schedule.