For some time now, my boss has been dropping not-so-subtle hints about the evils of estimating:
1. They are almost always inaccurate. As Ron Jeffries puts it, “Estimates are difficult. When requirements are vague — and it seems that they always are — then the best conceivable estimates would also be very vague. Accurate estimation becomes essentially impossible. Even with clear requirements — and it seems that they never are — it is still almost impossible to know how long something will take, because we’ve never done it before. If we had done it before, we’d just give it to you.”
2. They are a form of waste. The team puts time and energy into an effort that produces the aforementioned inaccurate information.
I got his point. In theory. But I was seriously struggling with putting it into practice. Plus, I’ve noticed lately that I have difficulty in doing something simply because it is suggested (and may actually dig in my heels a bit) – there will be another post on this. So, my team kept right on estimating.
Then, it happened. After a few Sprints of throwing story points, I pulled some metrics to see how accurate our points were. What I discovered was enlightening. All of our story point estimates were severely out-of-line save our 5-point estimates. Those were pretty close!
This told us that we pretty much knew what a 1-2 day story looked like. So, we went with that.
During our Refinements, instead of playing Planning Poker, we sized our cards down to a “5” (whenever possible). Theoretically, we were still estimating but our focus was starting to shift.
For a few Sprints we continued this practice. It felt a little funny at first. Then it started to become natural. Our conversation subtly changed from “How much effort is required for this card?” to “Do we need to break down the work?” We organically moved from calculating our Velocity to measuring our Throughput and Cycle Time. This simple change was pushing us into a much more Lean direction.
Now, a few months later, we aren’t focused on sizing our cards to a “5”. Instead we ensure that our cards are “right-sized”. Our Throughput is much more predictable than our Velocity ever was – We consistently deliver 36-39 cards a Sprint and spend much less time nit-picking over if a card is an “8” or a “13”. I’ve also noticed that we relentlessly examine our Cycle Time and have begun embracing other Lean principles as well.
Sure, we could’ve simply moved to #NoEstimates when probed, but there was tremendous value in the journey. When a team is allowed the freedom to explore what works best for them, the lessons are much more likely to stick. And now each team member has a story to tell that can be shared with other teams along their Agile journey.
Have you explored #NoEstimates? How did it work for you?
How much freedom do you think teams should be given in determining what works best for them? Where do you draw the line?