Something that I hear quite regularly, even throughout the agile community, is the perceived need to get better at estimation. Often in responding to areas of uncertainty, we attempt to add some level of control or certainty – particularly to delivery. I think that in many cases when I hear this, we’re actually solving the wrong problem.
Firstly, to the problem – do we actually understand the problem we’re trying to solve? In many cases this is a key point – any estimate will be based on the understanding of a problem and oftentimes, we don’t understand the problem well enough to be able to do this with any accuracy. In those circumstances, it’s not really worth estimating because we need to explore the problem space some more. Perhaps it’s a case that you’ve prematurely converged into the solution domain and need to get back to the problem domain. Often this occurs, because answering the questions in the problem domain are hard – perhaps it’s more about what experiments / spikes / customer trials should we run next to understand the problem some more before considering estimates.
In exploring the problem domain, it’s likely the case that you haven’t sliced the problem enough to be able to create focus and understanding. This makes it increasingly difficult to provide estimates because the domain is so broad. Spend more time creating alignment and focus on a more narrow scope and the estimation will inevitably be better as you have less uncertainty.
Estimates are often given as a single number – “it will be 6 months for 3 teams” or something of that nature. It doesn’t take into account or demonstrate the uncertainty in the domain – both in terms of problem domain and complexity of coordinating through the organisation to deliver the outcome. What if it was something along the lines of 4-8 months for 2-4 teams. Or perhaps something like “there’s a 80% chance of finishing within 6 months with 3 teams and 95% chance at 8 months with 6 teams”. Using a single number cuts down the conversation around risks and lulls stakeholders into a false sense of security. Starting with understanding and dealing with key risks up front gives you a greater chance of achieving the outcome – or stopping early if the outcome is not a viable option.
Furthermore, even in delivery maybe your estimates are not your largest issue. Quite often, I find in terms of medium to large organisations, there’s generally a low flow efficiency. Estimates usually pertain to effort rather than lead time. If you have a flow efficiency of 10%, then how much better off are your really by trying to get a better understanding of the 10%? There’s a point of diminishing returns and in this case it’s basically straight away for that kind of activity. You’re better off spending your time dealing with the blocking / wait states that are impacting the 90% of your lead time than getting better at estimates.
I often hear the cry that “we have to get better at estimates”. However, this is usually a symptom and the cause is likely elsewhere in your system of work. Take some time to get to understand the system of work and be more specific about the problem you’re undertaking to solve and you’ll likely avoid the discussion about estimates altogether.