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:
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?
SOLUTION
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.
ARGUMENTS
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.
FINAL WORDS
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?
The #NoEstimates conjecture has yet to provide an answer that can be tested.
How can you make a decision in the presence of uncertainty without estimating the impact on that decision on the outcome of your project?
The #NoEstimates advocates speaking about past performance (yesterday’s weather), slicing (reducing all work to similar sizes) and other notions, But those are the basis of estimating and as well ignore the underlying uncertainties of all project work. No Estimates clearly states it can make decision without estimates as written by Woody Zuill on day one of this conjecture.
To date, there has been no principle based method for doing that. These principles included Microeconomics of Decision Making, probabilities decision processes.
What’s described here in in the books on #NoEstimates is BAD Management. Vasco’s book assigns a project to a very novice project management for a business critical project and then is surprised that the project is in trouble on day one. This is “doing Stupid Things on Purpose” in the work we work – http://herdingcats.typepad.com/my_weblog/2014/05/ddstop.html
The core failure of #Noestimates is the conjecture that “estimating is the smell of dysfunction” without ever determining what that dysfunction is and correcting the root cause. #Noestimates is a response to a root cause that doesn’t even treat the symptom.
If your customer is willing to spend money in the presence of uncertainty without something about how much money and when the value in exchange for that money will arrive, then we’d call that project de minimis. “Drip funding” doesn’t tell you when you’ll get the value, slicing doesn’t solve this problem unless you actually can slice EVERY chunk of work to the same size and the team’s productivity never changes, AND there are no uncertainties in any process – internal or external – that will impact to work on those same sized slices.
The founders of Scrum speaking directly to the business need to estimate. So I’d conjecture that #Noestimates is willfully ignoring the principles of Scrum and Agile as part of their message.
In the end the money used to produce value for the customer does not belong to the developers (unless it does in a self funded firm). And therefore estimates are for those providing the money nor those spending the money. This notion sends the message that #NoEstimates is anti-management.
Woody classic quotes willfully ignore the Governance process in any non-trival business. Governance is about “decision rights.” Those spending rarely have the right to say how to those providing the money what is or is not needed to “govern” the business.
This post reinforces the notion that “developers are the only people in the room with the irght to decide how to spend the firms money.”