I’m torn. I’ve grown up (professionally) believing that estimates are the best way to guide, direct and drive a business. Not just in tech either; even my first job had targets and budgets that were based on estimates.
Suddenly, this bedrock of planning has been shattered: most estimates that I’ve given or received are nothing more than guesswork. “But they were educated guesses”, I hear you say. Well, yes, but they might have actually done more harm than good.
And it’s here that I introduce Woody Zuill & Neil Killock. These guys are leading the charge in the #NoEstimates discussion (written as such because it started as a discussion on Twitter). Here’s the problem:
We use planning and estimates to try and achieve control and certainty: to decide which project to do, decide how long a project will take, calculate how much it will cost, etc. We are trying to predict the future. We get better (more accurate) at estimating as time goes by: the goal being delivering work on time and on budget.
Unfortunately, although planning can be good, we are often looking at the wrong factors: time, cost, schedule. We don’t get better at estimating; they are still guesses. Unknown x unknown = WAG (Wild Assed Guess). “Planning”, Zuill says, “is how we turn uncertainty into error”. He also rightly adds that on time and on budget should be thought of as a worst-case scenario: we should not be proud of using all the allocated time and/or all of the cash!
They go further. Estimates might be doing damage.
Estimates can be useless. We are making estimates at the time we know least about the work. Our estimates also don’t include new requirements that are added as we discover new opportunities (through collaboration with our customers and small batches).
Estimates can be wasteful. We often estimate items that we will not develop (or, we develop then throw away). The plan changes.
Estimates can be harmful. If we are basing business decisions on WAGs, can we be making good decisions? Do estimates encourage us to stick to ‘the original plan’ because of the effort we put into estimating?
They raise other charges, but that’ll do for now. So, in light of this, why does everyone still think that estimates are the best way? Why do we still tell ourselves that it makes sense?
Challenge the status quo. Ask why we are estimating and challenge whether it is the best way to plan our work. Will your situation improve by abandoning estimates? Will doing less planning actually make things better? Are we planning the wrong things?
Agile and estimates don’t actually sit well together. Agile encourages you to deliver value regularly and in small chunks. Deliver early and often. Collaboration and regular evaluation helps us make decisions based on working software (allowing the right path to emerge as we progress). We are encouraged to accept change willingly and benefit from our learning. Shouldn’t the starting point be to decide what will deliver the most value?
Zuill quotes Napoleon Bonaparte: “One jumps into the fray, then figures out what to do next”.
Just to be clear, #NoEstimates does not mean don’t do estimates; it is urging people to make sure they are being used in ways that are useful and meaningful.
There are many criticisms raised against #NoEstimates. I cannot cover them all, but these are the two most common arguments I’ve heard:
“My customer demands estimates”
Why do they? Is it so they can sue/shout when it doesn’t work out?
Solution: educate customers on the benefits of agile. With agile, your customers will get more of what they want, on a regular basis, for as little money as possible. Alternatively, find better customers. Neil Killick has written a great post on contract negotiation.
“We use estimates to discuss requirements and make sure we all understand the story”
Using estimates to decide if we understand work is okay, but surely there’s a better way to get to that place. Shouldn’t we be striving towards that?
Click here for more responses to objections.
If you have to have a plan / estimate, keep them as high-level as possible; “details destroy the value that they might have”.
Wouldn’t we be better to live with uncertainty and lack of control … but create “something wonderful” through gradual, collaborative discovery with our customers and regular deployments of excellent software?
Can you open your mind enough to consider that there might be something better out there?
Has this made you angry? Enlightened? Don’t hold back: join in with the discussion?