We can all learn to be better estimators, and our projects will be safer and stronger for the effort. In Tom DeMarco's book Controlling Software Projects, he presents a simple method for tracking and scoring the accuracy of your estimates. Here, Tim Lister walks through the process.
Software projects are complex endeavors that carry much risk and pressure around quality and schedule. Providing valid estimates is a powerful component of creating a valuable project with a real chance for success. Yet my experience indicates that most in our industry can't estimate (see my article in STQE magazine, Volume 4, Issue 3, "Why Our Industry Can't Estimate").
Here's a quick walkthrough of one good way to become a better estimator.
The EQF (Estimating Quality Factor) Metric described in Tom DeMarco's book
Controlling Software Projectsis simple to learn and gives you a meaningful score for the accuracy of your estimating history.
How does it work? Pick anything you need to estimate. Let's say we want to estimate the first day a new system is actually operational. Today, as I write, is February 11. Given what I know today, I estimate that we will go live on July 10. Now I can start my EQF histogram (Figure 1).
Now, as time moves on, whenever I think I have a more accurate estimate than the current one, I may change my estimate. In Figure 2 we see that I have re-estimated upward twice, then lowered my estimate, then tweaked it up at the end to converge with the actual date, September 10.
What would a perfect estimating history have been? Simple. You estimate September 10 from the start and never deviate. In Figure 3 that would be line AB. The area under the perfect history is rectangle ABCD.
Obviously, I did not have a perfect estimating history. In Figure 4 I have shaded my deviation from perfection, both under and over. Now I can score the accuracy of the estimate using the area of the perfect estimation rectangle and the area of the rectangles where I deviated from perfection.
EQF = Area of a Perfect Estimate / Area of Deviation.