Done/Done/Done/Done in Scrum
In 2002, (give or take), I introduced the term “Done/Done/Done” into agility in order to describe what Done meant in an agile setting. It is now pretty established that Done is a HUGE concept in Scrum, but at the time we were just figuring it out. My thinking at the time was that a Story was Done when it was “Done/Done/Done,” where the three “Dones” meant (coded/verified/validated).
- Coded – It works on the developer’s box.
- Verified – It is Unit tested and the code works on the Integration box.
- Validated – It is accepted by Product Owner as being what was needed.
Later on a fourth “Done” was added for “Production Ready,” which meant:
- Production Ready – All additional stuff is there, like documentation, training for users, etc.
Now, I still like the four “Dones,” but have a slightly different focus. Since Stories are now well-defined bits of work, with well-defined definitions of Done, there is no longer the subjective third “Done” for them. The Product Owner no longer gets to decide if it is what is needed, the story is defined to be Done once the acceptance criteria are verified, and the DoD is met.
So there is now a hierarchy of things we do:
- Stories get “Done/Done” – Stories get “Done,” and are verified that they meet their acceptance criteria and DoD.
- Features get “Done/Done/Done” when the PO validates that the Feature is good enough.
- Products get “Done/Done/Done/Done,” when there are enough features for it to be useful to users.
This gives us three levels of agility:
1. The first level is inside the Development Team, where the Developers are self-organizing trying to get the individual.
Stories Done, or “Done/Done”;
2. The second level is low-level strategic agility, where the Team’s PO is deciding which Stories to deliver for each feature in order to provide the value (for that feature) that is needed – adding another “Done.”
3. The third level is the high-level strategic agility where the Product’s PO is deciding which features need to be there for the system to be useful to users when there is a “releasable Feature Set,” and the final “Done” is added.
In other words, there are three different levels of agility, three different sets of stakeholders, three different levels of abstraction and questions to ask.