#NoEstimates

The main difficulty with forecasting the future is that it hasn’t yet happened. – James Burke

51337482_zpsac2e9110When I first heard about #NoEstimates, I thought it was not only provocative, it can also be damaging. The idea of working without estimates seems preposterous to many people. It did to me.

 
I mean, how can you plan anything without estimates?

How we use estimates

When I started my career as a software developer, there was a running joke in the company. For each level of management, we should multiply an estimation by 1.3. If a developer said a task will take 3 months, the team leader will “refine” the estimation for 5 months, and at the program level it was now even more. A joke, but not remote from what I did later as a manager.

Let’s first get this out of the way: modifying an estimate is down-right disrespectful. As a manager I think I know better than the people who are actually doing the work. Another thing that happens a lot is estimates turn to commitments, in the eyes of management, which the team now need to meet. This post is not about these abusive things, although they do exist.

Why did the estimation process work like that?

A couple of assumptions:

  • Work is comprised of learning and development, and these are not linear, or sequential. Estimating the work is complex.
  • Developers are an optimistic bunch. They don’t think about things going wrong.
  • They under promise, so they can over deliver.
  • They cannot foresee all surprises, and we have more experience, so we’ll introduce some buffers.
  • When were they right on the estimates last time?

The results were task lengths in the project plan. So now we “know” the estimate is 6 months, instead of the original 3 months estimation.

Of course, we don’t know, and we’re aware of that. After all, we know that plans change over time. The difference is now we have more confidence about the estimate, so we can plan ahead with dependent work.

Why we need estimates

The idea of estimates is to provide enough confidence in the organization in order to make decisions about the future.  To answer questions like:

  • Do we have enough capacity to take on more work after the project?
  • Should we do this project at all?
  • When should marketing and sales be ready for the launch? What should the people do until then?

These are very good business questions. The problem is our track record: we’re horrible estimators (I point you to the last bullet). We don’t know much about the future. The whole process of massaging estimates so we can feel better about them, seems like we’re relying on a set of crystal balls. And we use these balls to make business decisions. There should be a better way.

So what are the alternatives?

That is the interesting question. Once we understand that estimates are just one way of making business decisions, and a crappy one at that, we can have an open discussion.

The alternative can be cost-of-delay. It could be empirical evidence to forecast against. It can be limited safe-to-fail experiments. It can be any combination or modification of these things, and It can be things we haven’t discovered yet.

#NoEstimates is not really about estimates. It’s about making confident, rational, trust-worthy decisions.

I know what results estimates give. Let’s seek out better ones.

For more information about #NoEstimates, you can read more on the blogs of Woody Zuill, Neil Killick and Vasco Duarte.

Reference: #NoEstimates from our JCG partner Gil Zilberfeld at the Geek Out of Water blog.
Related Whitepaper:

The Retrospective Handbook

A FREE guide for agile teams.

Are you running retrospectives regularly? Perhaps you run retrospectives once a week, or fortnightly. Do you feel like you could be getting more out of your retrospectives and fuelling continuous improvement in your teams? You may already find retrospectives valuable, but suspect there are ways of making them better.

Get it Now!  

Leave a Reply


× three = 12



Java Code Geeks and all content copyright © 2010-2014, Exelixis Media Ltd | Terms of Use | Privacy Policy
All trademarks and registered trademarks appearing on Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.

Sign up for our Newsletter

20,709 insiders are already enjoying weekly updates and complimentary whitepapers! Join them now to gain exclusive access to the latest news in the Java world, as well as insights about Android, Scala, Groovy and other related technologies.

As an extra bonus, by joining you will get our brand new e-books, published by Java Code Geeks and their JCG partners for your reading pleasure! Enter your info and stay on top of things,

  • Fresh trends
  • Cases and examples
  • Research and insights
  • Two complimentary e-books