If you collect historical data related to counts, you can convert the counts to something useful, such as estimated effort. Table 7-1 lists examples of quantities you might count and the data you would need to compute an estimate from the count.
Quantity to Count | Historical Data Needed to Convert the Count to an Estimate |
---|---|
Marketing requirements |
|
Features |
|
Use cases |
|
Stories |
|
Engineering requirements |
|
Function Points |
|
Change requests |
|
Web pages |
|
Reports |
|
Dialog boxes |
|
Database tables |
|
Classes |
|
Defects found |
|
Configuration settings |
|
Lines of code already written |
|
Test cases already written |
|
Tip #32 | Collect historical data that allows you to compute an estimate from a count. |
Example of counting defects late in a project Once you have the kind of data described in the table, you can use that data as a more solid basis for creating estimates than expert judgment. If you know that you have 400 open defects, and you know that the 250 defects you've fixed so far have averaged 2 hours per defect, you know that you have about 400 x 2 equals 800 hours of work to fix the open defects.
Example of estimation by counting Web pages If your data says that so far your project has taken an average of 40 hours to design, code, and test each Web page with dynamic content, and you have 12 Web pages left, you know that you have something like 12 x 40 equals 480 hours of work left on the remaining Web pages.
The important point in these examples is that there is no judgment in these estimates. You count, and then you compute. This process helps keep the estimates free from bias that would otherwise degrade their accuracy. For counts that you already have available—such as number of defects—such estimates also require very low effort.
Tip #33 | Don't discount the power of simple, coarse estimation models such as average effort per defect, average effort per Web page, average effort per story, and average effort per use case. |