April 15, 2011, 5:08 a.m.
posted by concurre
If you don't have your own historical data, you can look up a rough estimate of effort by using an effort graph, such as those contained in Figures 19-1 through 19-9. The bold blue lines in the figures represent a project's total technical effort (including development, quality assurance, and test) at the industry-average productivity level. The upper black line represents a level of effort that is one standard deviation higher than the average effort. I haven't shown the effort line that is one standard deviation below the average. If you don't have your own historical data and are using these graphs, that's a sign that your development organization is at best average. Prudent estimation practice calls for the assumption of industry-average productivity or worse.
The graphs show project sizes up to 250,000 lines of code, with maximum efforts on some of the graphs exceeding 10,000 staff months. For projects of that size, recognize that the use of more powerful and accurate estimation practices could easily improve project plans enough to save hundreds of thousands of dollars. Estimation guru Capers Jones has often commented that using manual methods to estimate projects larger than about 1,000 function points or 100,000 lines of code introduces significant error, and failure to use sophisticated estimation software for projects larger than about 5,000 function points or 500,000 lines of code constitutes management malpractice (Jones 1994, Jones 2005).
The math underlying these graphs is fairly involved, and so this book doesn't present the underlying formulas. The effort values on the graphs are presented using a logarithmic scale. The first line above 100 represents 200, the second represents 300, the first line above 1,000 represents 2,000, and so on.
The graphs appear similar to each other, but if you closely examine specific data points, you'll find they're quite different. For example, compare both the average and plus-one-standard-deviation values at 100,000 lines of code, and you'll see that the estimated staff months vary widely.
Using the industry-average graphs, we can reestimate the example that began in Section 19.2, "Computing Effort from Size." That was a business-systems project with a size estimated between 65,000 and 100,000 lines of code. According to Figure, the average effort for a 65,000-LOC business system would be about 85 staff months. The average effort for a 100,000-LOC system would be about 170 staff months. If we had to use the upper line rather than the average line, the estimate would range from 300 to 600 staff months.
Use industry-average effort graphs to obtain rough effort estimates in the wide part of the Cone of Uncertainty. For larger projects, remember that more powerful estimation techniques are easily cost-justified.