A fascinating article I read many years ago (The Cult of Done Manifesto, by Bre Pettis – UPDATE: the website was shut down so I replaced the initial URL with a link to a snapshot in Wayback Machine) was suggesting:
Done is the engine of more.
An idea that neatly fits into the Agile ecosystem, where the primary objective is to achieve a fast, smooth, and lean workflow.
However, are we always clear on when something is done? Moreover, even more stubbornly I wonder, are we clear on what is ready to be done? You will discover, if you did not already, without these two essential notions, our Agile process turns out being entirely incomplete.
Definition of Ready
Imagine having a backlog of Stories whose description does not fully clarify who is meant to benefit from a particular feature, or what the boundaries to develop these features are. An “unhealthy” backlog is always a source of troubles that eventually will result in an unhappy client. A client that might start losing their confidence in the Agile model that we so hardly convinced them to buy.
That is where the Definition of Ready comes in handy, as a set of criteria to establish when a Story can move into an “active” backlog. These rules are not predefined nor forced, but rather agreed amongst the members of the team.
The Definition of Ready may impose that a story has, to be allowed into the backlog:
- a particular format (as a <who>, I want to <do something>, so that I can <achieve something>)
- an unambiguous list of acceptance criteria
- an estimate agreed by the whole team.
Definition of Done
It is a nice way to ensure that the work flows smoothly, and everyone is clear on what to do when approaching a new story. Still, how do we know when a Story is really done?
That is what the Definition of Done is for. It defines a set of rules to claim legitimately that a Story is ready for acceptance by the Product Owner. For example:
- the Story must meet all the acceptance criteria;
- somebody must have reviewed the code;
- the Story should relate to a list of test scripts, and 100% of them must have passed.
Once again, the Definition of Done is produced by the team, not by a single member or somebody external.
A developer might have his definition of done in mind that doesn’t necessarily meet the definition of ready of the QA manager. Without an agreement on these definitions, tasks would get stuck in a limbo where nobody is clear on how to move to the next step.
If you are struggling with getting Stories done, next time you kick off an Agile project, try and urge the team to agree on a definition of ready and a definition of done. Let me know if it went any better.