The “Done” Fallacy
One of the earliest ideas you learn as an agile practitioner is āDone, Done, Doneā. Thereās a lot of thinking behind it, but for meĀ it boils down to trust. When you donāt know what ādoneā means, the next person who gets youāre deliverable might be surprised.
As a rule, we donāt like surprises.
So regardless of when itās going to be delivered, what the quality is or what it contains, it is better to achieve a mutual understanding of what ādoneā really means. If possible,Ā prior to the delivery.
In agile teams, a ādoneā storyĀ is usually defined as a working work flow in the software. Mature teams put enough effort in the story to make sure it works ā automated tests, code review, deployment automation ā whatever is close to the teamās definition of āworking softwareā.
If the team has all these in place, it seems that if we define all the stories up front, weād actually know how much ādoneā we are in the feature, release or product level.
Itās never done until itāsĀ good enough to ship
We donāt like big preparation upfront in agile, because things will change. The bigger they are, more changes will be introduced. It applies to requirements, design, architecture and plans.
If thatās true, then we can never really know how much on track we are. If the team is currently working on story number 25 out of the original 50 we came up with originally for the release, are we really half-way?
Things may change over the next couple of sprints ā we may learn things that will driveĀ us to drop or add stories, and maybe replace them with others.
In an exact point in time, we donāt really know how much done we are. And that appliesĀ at the feature, product and portfolio level. We can only decideĀ if weāre ready to ship. If the feature, product or portfolio are ready for release. Someone, usually a PO or equivalent has to say ā ok, this is good enough, ship it.
Even at the storyĀ level, we wonāt always have time to code and test every path. So even a ādoneā story may not be really done, but still be good enough to ship.
Thatās ok. Because regardless of level, from story to portfolio, getting to 100% done-ness is waste. We donāt need all the stories or features in there to ship. A good product ownerĀ knows when itās good enough toĀ ship.
A smart one will ship many times to get feedback and learn, understanding the productĀ is never ādoneā.
Weāre really never done. And thatās ok.
| Reference: | The “Done” Fallacy from our JCG partner Gil Zilberfeld at the Geek Out of Water blog. |


