Stop Estimating: The #NoEstimates Movement in Agile
Take a look at the growing and potentially revolutionary idea to stop estimating in Agile Sprints, and what the backdraws could be.
Join the DZone community and get the full member experience.Join For Free
There's a movement that's been growing last few years. It's brewing and it's picking up some steam. Or at the very least some brave souls and organizations are more open to experimenting with it.
This so-called #NoEstimates movement within the Agile community. Let the Twitter flame wars ensue!
The main premise of the movement is that estimates do not directly add value to your process or work, so you should find ways to reduce the estimation process or even stop it if possible. Meaning throw out your estimation efforts in hours, days, t-shirt sizing, or story points or whatever you're using for your units of effort. In a nutshell, find ways to make decision with "no estimates".
Let that sink in. Don't do estimates if possible.
As you can imagine this is very touchy, sensitive subject. I can feel your trepidation as I felt mine when I thought about it initially. Imagine telling your Vice President or Executive Business Sponsor, "So you thought story points were revolutionary. We found a new way to work better..."
I've typically coached teams to only estimate when it is necessary to help you decide on something. Which often than not is go estimate. Every stakeholder wants to know the effort and really, "How much is that going to cost me, and is it worth the ROI." Which usually leads to "How can I test it for cheaper, and prototype it quickly?"
And ultimately if your teams are predictable in short time-frames, time-boxing estimation processes, breaking epics and stories into small digestible valuable chunks, focusing on continuous flow-based work, and continuously examining your cumulative flow diagram, is that not enough to say, "That'll take us about four sprints" without getting into level-of-effort discussions? I suppose that is a form of estimation.
Anyhow, circling back to the No Estimates movement—from my perspective this is a worthwhile experimentation and progression in the community looking at better ways to maximize delivering value and reducing any non-value add processes. If you look at the latest studies on delivery of projects/products many projects are still late or failed. So why even estimate?
Well, because a lot of people, and I mean a lot of people, are dependent on your project or product delivering. Other teams and groups are planning and re-planning as you go through your development iterations. So, what if you're late? That's not a reason to not provide an estimate. Customers and businesses want some form of predictability—even if it is inaccurate a lot of the time (airplane delays come straight to my mind)! The goal is that uncertainty reduces as you develop, learn, and iterate on your plans and timelines and gain more certainty. You'll refine your estimates and the expectations of your dependent stakeholders.
Now if that's not happening or you're spending significant amounts of time estimating and re-estimating and fighting over estimates or the development team is being squeezed and pressured by stakeholders because of their estimates—those, my friends, are separate issues.
I believe if you're working in a small development shop it is the perfect home for No Estimates experimentation. Realistically speaking, I think in bigger enterprises this will be a no-go, a "non-starter conversation," as one of my customers recently said to me. I'd love to try it one day as I think it has a place in this world—I just don't think quite yet we're there.
And if you don't believe me, bring it up to finance or that venture capital firm you took money from and see how they react. As I always say, "Follow where the money goes".
Published at DZone with permission of Krista Trapani, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
How To Approach Java, Databases, and SQL [Video]
Building a Flask Web Application With Docker: A Step-by-Step Guide
Chaining API Requests With API Gateway
Managing Data Residency, the Demo