Table 17-4 shows an estimation procedure that's suitable for iterative software projects. This sort of procedure tends to be most useful in organizations that are on an annual budgeting cycle. The budget is fixed at the beginning of the cycle, which means staffing levels are also fixed. The estimation challenge is thus not to estimate cost (which is fixed by the budget) or schedule (which defaults to a year for annual budgeting cycles). The challenge is estimating the amount of functionality that can be delivered with fixed staff and within a fixed timeframe.
|
The procedure defined in Table 17-4 assumes that the iterations are well controlled—that is, that each iteration is brought to a releasable level of quality, "cleanup work" is performed within each release and does not accumulate off-plan, and so on.
The procedure shown in Table 17-4 also illustrates many of the elements usually found in estimation procedures:
Emphasizes counting and computing when possible, rather than using judgment In Estimate II, data from the project is fed back into the estimation process so that estimates from that point forward can be computed based on the project's historical data.
Calls for use of multiple estimation approaches and comparison of results This procedure does not call for multiple approaches. If you were to use this procedure and you found that Story Points were not providing good predictive accuracy, you should amend the procedure to use additional estimation methods.
Communicates a plan to reestimate at predefined points in the project The plan calls for Estimates I through III, which indicates an intent to reestimate periodically.
Defines how the required estimation approach changes over the course of a project As with the sequential procedure, the details of each step in this procedure are different based on the historical data the project has generated.
Contains a clear description of an estimate's inaccuracy Estimate I simply states that no whole-project estimate shall be made, and Estimate II provides an uncertainty range of 75% of intended functionality to 100% of intended functionality.
Defines when an estimate can be used as the basis for a project budget In this case, the financial budget is assumed.
Defines when an estimate can be used as the basis for internal and external commitments Estimate III is called the "Commitment Estimate." Earlier estimates explicitly state that they shall not be used as the basis of external commitments.