Applicability of Techniques in This Chapter | ||||
---|---|---|---|---|
Fuzzy Logic | Standard Components | Story Points | T-Shirt Sizing | |
What's estimated | Size, Features | Size, Effort | Size, Effort, Schedule, Features | Effort, Cost, Schedule, Features |
Size of project | - M L | S M L | S M L | - M L |
Development stage | Early | Early-Middle | Early-Middle | Early |
Iterative or sequential | Sequential | Both | Both | Sequential |
Accuracy possible | Medium | Medium | Medium—High | N/A |
Most estimators can't look at a feature description and accurately estimate, "That feature will require exactly 253 lines of code." Similarly, it's difficult to directly estimate how many test cases your project will need, how many defects to expect, how many classes you'll end up with, and so on.
A family of estimation techniques known as proxy-based techniques helps to overcome these challenges. In proxy-based estimation, you first identify a proxy that is correlated with what you really want to estimate and that is easier to estimate or count (or available earlier in the project) than the quantity you're ultimately interested in. If you want to estimate a number of test cases, you might find that the count of the number of requirements is correlated with the number of test cases. If you want to estimate size in lines of code (LOC), you might find that a feature count—stratified by size category—is correlated with size in lines of code.
Once you've found your proxy, you estimate or count the number of proxy items and then use a calculation based on historical data to convert from the proxy count to the estimate that you really want.
This chapter discusses some of the most useful proxy-based techniques. The point of each of these techniques is that the whole has a greater validity than the individual parts. Thus, these techniques are useful for creating whole-project or whole-iteration estimates and for providing whole-project or whole-iteration insights, but not for creating detailed task-by-task or feature-by-feature estimates.