We’re not Done yet
After some feedback from the Done Fallacy post, I feel I need to explore done-ness a bit more.
How we work and talk make up some very interesting distinctions. For example, letâs think about what the word âdoneâ really means. It sounds simple, but the meaning changes over time.
Letâs take a story, for starters.
When we start working on a story, we use âdoneâ as an expectation matching tool. We define done-ness as an acceptance criteria in order to have mutual understanding of what we get in the end.
Done-ness includes these parameters:
- Functionality â What workflows we add or change (and which stay the same)
- Quality â How well will it work (and what wonât)
- Delivery format â How it will be released (and what following steps will be needed after it is âdoneâ)
When we reach a discussion about the story, weâve already constrained by time and complexity. The story was already cut down to fit in a sprint, or short enough to reduce risk. At this point, thereâs a sort-of-defined picture of what the packaged story will include when itâs finished.
Now, what happens as we move forward in time? Things change, we learn as we work. When the sprint is over we can check the outcome.
This is where it gets tricky. Some aspects are easy to declare done/not done while others are a bit vague. Here are some examples:
- The story works in staging, but not in production. All we need is to deploy to production, which will happen when another team uploads. Itâs âvirtually doneâ.
- We discovered a few cases we didnât think about originally. The story is either not complete, or is done for now.
- We implemented some of these cases we discovered, but havenât tested them. While the original cases in the story work and deployed, we may need more work to complete testing.
- We implemented and unit tested, but a tester got pulled for very important business and managed to complete manual testing only, and didnât write the end-to-end tests.
- We completed testing, but with few minor bugs we didnât manage to fix.
- The story works, but we identified that for it to be more robust, weâll need to redesign and redo it.
And there are many more examples. The story may be done, but itâs not really complete.
Now, if we talk about a feature, epic, saga, product or roadmap, things get murkier as we go up in scale. That means the done-ness in the beginning looks nothing like the done-ness in the end. Not only that, things are never complete.
Hereâs the catch: It doesnât matter.
Much like a comparing actual progress to an original plan, this is not valuable. We donât learn much from comparing the story state now compared to the original done-ness expectation.
What is important, is what we have implemented and tested, and is it good enough. If it is, great. If more work is required, thatâs fine too â now we know better.
âWonât it drop our velocity?â
Maybe. You can either:
- If the story is good enough â it deserves its points
- If it is not -it doesnât
- If more work needs to be done â donât give it points.
What youâre not going to do is spend 15-30 minutes discussing the level of done-ness. Talking about estimates being wrong is really waste. Just try to be consistent.
So, are we done here?
| Reference: | We’re not Done yet from our NCG partner Gil Zilberfeld at the Geek Out of Water blog. |

