What is the Purpose of Estimation?

We need to remind ourselves why it is we estimate. Let's face it, estimation is mostly about planning. And there is a huge amount of baggage in most organizations associated with the process of estimation. From the business perspective, the main reason we have to estimate is to provide data to the business (through the Product Owner / Manager) to understand, manage, and forecast the release plan. They are trying to make sure that for a given capacity for the organization (enterprise, program, or team), that we make trade-off decisions about how to best use that capacity, and then understand progress against these decisions. A secondary reason is to help the organization understand their capacity so they do not over-commit and establish a sustainable pace.

“The point of estimation is not to predict the future but to understand if we are even in with a chance of managing our way to success” – Steve McConnell

But we need to be able to forecast. As Ron Jeffries says “Yes, estimation is fraught. It is inaccurate, and politically dangerous. But we do have some knowledge and the project deserves to have it.” The process of estimation is not evil in and of itself. Dilbert summarizes the traditional approach and the way we feel about it. What this really points out is that its just the way we use estimates that is a problem:

Estimates often become commitments. People tend to treat these numbers as factual true data points instead of the probabilistic statements they are, with poor results.

Estimates take a long time. Because we know the estimate is about to become a commitment, we almost do a complete design of the system in order to come up with an estimate.

Estimates are wrong. But even after spending that amount of time on it, the estimates are wrong. And you'll find that the more time you spend on an estimate, the worse it becomes, mainly because you are building your estimate on assumption over assumption over assumption.

Estimates are done by one group. And so do not reflect the total view of what is required to do the work.

So the agile approach to estimation is aimed at improving these outcomes. The agile approach stresses speed, full team involvement, and information that is accurate enough for the purpose intended, not pure precision. What is interesting is that from a Team perspective the agile approach provides additional reason to do estimation:

Clarity: As teams participate in the estimation process, each skill set brings their viewpoint to the discussion, this building a common understanding of the need and the work involved. Sure the person do the change might think it is a simple change, but the with the testing background might understand that there is a wider impact. Through discussion as a result of estimation, this clarity is built.

Reduced batch size: Estimation helps us forecast work. But what is interesting is that Teams quickly discover (as they analyze the success of their estimation) that the smaller the work, the more predictable their ability to deliver. So the process of estimation actually works to encourage smaller batches of work. Teams will start to establish team norms to say, for example, “if a story takes is expected to take more than 1/2 a week, we need to split it.”

Agile requires that we provide the Product Owner with good data, that we work to improve the estimates when they do not provide the data required. In other words, when we say “make estimation work” what we mean is that the Product Owner can plan easily using the estimates and velocity we provide to plan a release and make informed business decisions. If the Product Owner cannot make it work, it is up to the Team to help fix the problem perhaps by trying the approaches suggested here, or any other experiment.

Want to Know More?

Why Do We Use Story Points Instead of Hours or Days?

What is the Basis of Our Estimating Process?