STOP the estimation game!
Context
One of the most difficult things to change in an organisation is the way they estimate software delivery and approach predictability. Yes, I said organisation and not just development team because estimation and prediction involves everyone:
- Managers use it as a decision making tool
- Managers use it to measure performance and success
- Products Owners use it to help ordering the Product Backlog
- Development Teams use it to plan the work to be done
Even finance, marketing, HR and procurement are affected by the way estimates are done, but that is even a more tricky topic.
Poison
The way a lot of organisations estimate software is completely poisonous. It destroys the most elemental values of innovation and delivering real value to customers. Success becomes getting better making guesses instead of getting better delivering value to customers.
People prefer to become better predicting instead of becoming better delivering
Problem
It is proven the fight for better estimates does not improve delivery whatsoever. It does not make anyone happy (especially the customer). People always feel miserable estimating and then playing the game of "Oh, wrong estimates again... so lets start the blaming culture once again :[."
Being better doing estimates is not the innovation differentiator any more
Besides that, only one person in a million is good defining software estimates. The human brain simply does not cope with it. The variables are so many that it is completely impossible to predict all of them and understand their delivery impact.
But why continue doing the normal estimation game if it is so obvious it does not work?
- The estimation process becomes just another weapon managers can use to blame someone
- It gives a short-term sensation of control (to everyone actually...)
- Everyone else is doing it as well
- Some people just like to continuously be miserable and waste time
Breaks my heart
- Performance and success based on story points
- Teams planning their work using hours
- Extensive planning sessions for big chunks of work
- Blaming culture because of "wrong" estimates
Result
- No focus on what the customer really needs
- Quality decreases enormously
The game to play is not the predictability one; it is rather the adaptability one
Advices
- Break down work items into a small or medium size
- Measure throughput instead of story points
- Measure lead time of your flow streams (cycle times are a nice to have because sometimes it is difficult to initially measure them; therefore start with lead times first)
- Putting hours against story tasks is just an incredible waste of time (by the way, just create high level tasks)
- Create product roadmaps and do proper user story mapping
- Define a product vision and testable strategy statements
- Understand the difference between a story and a hypothesis
- Understand the difference between vanity and actionable metrics
Summary
Trying to change how an organisation approaches predictability sometimes is just a lost cause since it is driven by the executive level. However, it does not mean we just give up. At least, educate yourself so that you can be prepared to make improvements when possible. I unfortunately have been meeting a lot of Scrum Masters and Agile Coaches with a traditional mindset concerning predictability...
Agile coaches and Scrum Masters, please keep in mind:
- A level of predictability needs to be achieved, but the way to get it can and must be simplified
- Predictability must be oriented to what customers really need over when someone things the customer needs something
- Predictability is not a measure to understand success
- Learn about no estimates
- Learn about lean startup and lean analytics
- Learn about the difference between resource efficiency and flow efficiency
Estimating is like gambling: you are just making bets
Retired IT Legend
9 年Great post. The industry is still full of managers that crave certainty at the outset through traditional bottom up estimation; rather than develop models and techniques to capture cadence and flow in-flight, and do continuous planning from there.
Scrum & Agile Training Specialist at Scrum.PT / Scrum.org | Business & Product Development Agility. Certified Train the Trainer (TBR)
9 年I do not fully agree, I understand that we are quite bad at estimating, this is natural and whom do not understand it, start it wrong with estimates. The problem is not about estimating,it is about how it is used at the end by the ones whom do not understand its purpose. That is why It is called an estimate, it is not a bet nor a guess, it is just a "measurable" self commitment that may improve between iterations; Certain projects/features/tasks have no estimable profile, like a bug for example; But something like "filling a list from a simple db query and returning it as a json string" if you do it regularly you will gain awareness about the commitment between: difficulty, effort, time and of course the caos contribution. This does not mean that you will indeed take exactly the same amount of time/effort (or whatever you based your estimate on) in repeating the exact same task, but you may find a way to understand why one time you were quicker/better than another time, and may be it will help eliminate waste or help one learn to predict and get around a specific impediment. Estimates should be used to learn not to control! At the end i also believe that it is better to build the future rather than trying to predict it.
Product Owner at Belfius
9 年Great post!! And there is always that kind of pressure to compress the estimate to fit a desired target date, and when you say it is not possible people tend to tell you to "make it possible". And, of course, the execution does not follow the "PowerPoint" and the "MS-Project" graphs, and people start saying the project is late. So, I always thought that in the end of the day the estimates are something to make people happy at the beginning of the project and miserable just after it starts until the end. :-) And Agile methodologies adopted by old-minded people just changes the processes from MS-Project planning to post-it's on the walls, but does not make it agile at all. It is still a war to be won.
Lead Developer & Computer Engineer | Automating Systems at Scale | Harnessing AI
9 年There is a grammar error in the "Problem" paragraph. "... (specially the customer)" should be "(... especially the customer)."