The Premise
In case you are short on time here is a summary:
- Estimating can be an endemic problem in organisations these days because estimating is fundamentally guessing, yet these guesses are taken as promises / firm commitments (when that is not how they were intended).
- Moving away from this is better for everyone since developers are not in trouble for not hitting a deadline they knew to be rubbish, and managers are not angry that what they thought was a delivery commitment has not been met.
- Coming up with point estimates is waste as it delivers no direct value to the customer.
- Rather than giving estimates we should give forecasts.
- You should be aligning your roadmap (epics / features / stories) so that the most important elements are done first, across all slices.
- Vascoe Duarte shows research in his book NoEstimates: How To Measure Project Progress Without Estimating
that by simply counting the number of stories you have to deliver, you will be able to track sprint by sprint to an outcome (end date) that is almost identical to the one you would have got from doing detailed estimating.
When I think this works
Firstly I'm going to think about a particular kind of team, specifically a DevOps team of shared resources that are distributed through other teams, who use a Kanban approach to manage their overall backlog and work items.
I've had several experiences of organising and running DevOps teams and I don't think that estimating or running sprints works for them - the work is simply too unpredictable for it to have any meaning or value. It often doesn't relate to visible "front end" stories (although it can do) and doesn't necessarily tie in to an end of sprint shippable iteration.
So yes, in this situation I think the "no estimates" approach outlined above could work well. I even think that something like
Actionable Agile
could be useful in producing metrics on cycle time etc, given that a DevOps backlog is in a constant state of flux, everyone will want to be adding to / removing things from it, and given all that it can be a challenge to extract any kind of meaningful statistics for how the team is doing.
NOTE. I would still want some Scrum / Kanban basics to remain, specifically the team meeting regularly (daily stand ups, retrospectives etc) in order to discuss what they are all doing and find any opportunities to share knowledge, help each other out and so on.
When I think this won't work
Now I'm going think about a very different kind of team, a software team working with Scrum. By that I mean a team who implement user stories and are expecting to complete a "potentially shippable iteration" at the end of every sprint.
I understand the argument saying that estimating is waste as it gives no benefit to the user. But I would say that it gives indirect benefit, because the estimating has broken the story / task down into a sprintable / deliverable iteration, so the user could know reliably in advance when something will be done, and that has value.
The argument states the assumption that all stories have been broken down up front to be the same size. When I first heard this statement (which was actually on a project I was working on) it was relating to the next 6-9 months of deliverables for several teams, and my first thought was "how the hell have you manged to do that?". Without talking to the teams who will be implementing these features (some of whom had not even been hired yet) how can you have any idea what the size of something is? The amount of time (yes I used that word) something takes is absolutely dependant on the technical detail behind it, it always is. So if I'm told that I have a "20 story backlog" and that we will track against that, I won't believe that it's a valuable measure until the team have been through it and picked it apart.
In "pure Scrum" the idea behind estimating is not just to produce a story point number with planning poker, it is very much about having a conversation with the team about the story / task. No matter how good the preparation of the story is you will never have all the detail until the developers and testers have started to have a good look. "Oh that's much more involved than that because of a,b,c". "No no, it's easy because we've already done x,y,z". "You haven't thought about the edge cases 1, 2, 3......". You get the jist.
Following on from the point above is where I think I get to my real issue with it - and I say this specifically referring to my personal experience. By saying you get no value from such a core Agile (well, Scrum) process as getting the people who will implement the work to estimate it, I see a much more fundamental problem that is being masked - your Scrum teams (probably) aren't working as well as they should be. When I saw this story counting based approach before it was with a move to using the Actionable Agile suite with JIRA. The reasoning being "It will show if you have a long cycle time so you can try to understand why that is" and "It will highlight if stories get stuck and help you to work out what your critical dependencies are". I left this discussion very much of the view that any well functioning Scrum team (and especially Scrum Master) would know those answers off the top of their heads without having to pause for breath. By introducing additional processes for EVERY team to follow you are adding overhead and time (waste) but also hiding the fact that your teams should already know this stuff, and they should be raising any problems loud and clear. By adding these metrics you will allow poorly functioning teams to remain poorly functioning and then praise the tool for highlighting the problem. To me that couldn't be a worse approach. Always fix the root cause of the problem, don't apply sticky plasters as they build up over time and always leave a bigger mess. Now I'm sure that there may be places where these approaches work and people like them, certainly management do love metrics! But maybe these aren't the right metrics to be looking for.
Finally the evidence shown for "you'll get to almost the same outcome" was shown very early in the sample tracking. I'd be very interested to see what the final real life outcome of those charts were. A difference of 7-10% was also quickly generalised to "the same outcome".
Given all of this, and even with the areas I do agree with (see below), I don't feel that the "no estimates" approach would work well for this kind of team.
Common ground
In either case I do agree that within organisations estimates are taken as promises, and that is a huge problem. When I give Agile Estimation training my first slide is to show the dictionary definition of the word "estimate", just to remind everyone that we are basically guessing. Educated guessing sure, but guessing all the same.
I also agree completely with doing your highest priority cross feature slices first. Although I would expect that to be happening anyway.
One key problem with estimating
If you are going to estimate then you have to constantly refactor to ensure that there are no nasty surprises under the cover.
Because if you don't then there is every chance that your estimate really will be meaningless.
In conclusion
I admit that I'm not an expert in this area but my experience to date leaves me thinking that while it could well for the right kind of team, I don't see how it works as a one-size-fits-all approach. That said I'm always happy to learn and adapt my view so I'll add Vascoe Duarte's book to my reading list.
But maybe there is another deeper point behind all of this, and that is should we be encouraging organisations who want to be truly Agile to be doing things properly instead, thereby removing the need for such detailed estimates / plans in the first place? By transforming fully to Agile (fully cross skilled teams, removed dependencies, valuing Adaptive and Emergent planning traits) the desire for such estimating would significantly reduce, if not disappear altogether (this point links nicely to a previous post about
what kind of organisation are you?).
For now though, I'll hang onto my Planning Poker cards.