For a little too long, there has been a #NoEstimates discussion on my Twitter feed. I am not entirely sure why developers want to stop to giving estimates; the world around them still continue to give quotations/estimates on work they need done. The following list are a few possible explanations why developers do not want to estimate the effort to business.
- Businesses are holding estimates as a commitment.
- Developers do not have enough data to give a confident estimation.
- The clarification of scope / changing of scope of the work.
- Requiring developer teams to move faster and faster with less resources; often not repaying technical debt.
Thus, the goal of this blog post is to focus on the discussion why estimates are necessary.
I have blogged before that businesses want to build their software with the software technical team. Therefore, it should be encouraged that both business and developers look together in union to the vision. That vision is the ideal polished product of the future, as viewed by today’s perspective.
However, that future goal will always be evolving and changing as time passes; so the next best thing is to grab those low-hanging fruits that would allow tomorrow’s position to be that much closer to vision of today. That is why estimates are important and should guide the discussion of what’s next?
The Business Levers
One of the insights that an old boss of mine gave me: define tasks as contributors to increasing revenue, or reducing expenses. He called these tasks as project levers, as depicted in the following diagram; as one lever is pulled, it should affect the revenue by either reducing expenses, or increasing income.
Building upon the lever illustration, the estimates provided by the technical team should help the product owner to identify the low hanging fruits easily. The following diagram illustrates a grossly simplified formula.
As illustrated, estimates are a joint decision by the business and technical team to determine which projects they need to pursue first. Business needs to be convinced of the task’s impact to the bottom line; technical teams help them to understand how much it costs to achieve the goal.
None of the other reasons to hold back estimate data from the business team could be justified.
So what are you planning to do next?