What is a Definition of Ready
A definition of ready is an agreement on the set of conditions that need to be true in order to consider a backlog item ready to be included in an iteration for delivery.
The conditions that I see included most frequently in a definition of ready are
- Small enough user story
- Acceptance criteria
- Testable examples
- Mockups or appropriate model (where appropriate)
- Dependency list
- Impacted stakeholders
When to Use a Definition of Ready
As with the discovery board, the definition of ready is most useful in situations where a team is following an iterative approach, such as Scrum, and are working in a sufficiently complicated environment. In this situation, teams will find it helpful to perform analysis and dive into the details of user stories prior to the iteration in which the stories are delivered.
Why Use a Definition of Ready
It is helpful to have specific agreement on what should be known about a backlog item before it is included in an iteration. The definition of ready provides this agreement and also goes a long way toward defining what “just enough” analysis is. In effect, the team agrees to the specific level of information that they need to start testing and developing a story. If you have always wondered how to tell when you are “done” with analysis, a definition of ready may be just what you need.
A side benefit of having and using a definition of ready is that iteration planning tends to go more smoothly. Because the necessary information for deciding whether or not to include a backlog item in the iteration is already well known, the team saves a great deal of analysis time during iteration planning.
How to use a Definition of Ready
- Gather the team together at a whiteboard. Explain that the purpose of the discussion is to establish an agreement on what they need to know about backlog items before they consider them in iteration planning.
- Have the team generate a list of all the things that would be nice to have identified about a particular backlog item prior to considering it in iteration planning.
- Once the energy for adding new items seems to die down, go back and review the list. Ask the team to consider whether it’s reasonable to expect to know all of the items they suggested for every backlog item.
- Continue revising the list until the team feels comfortable with the resulting items, which will generally be fewer than on the first list. This list forms the team’s definition of ready.
- Use the definition of ready as an ongoing check to determine whether a backlog item is understood well enough to be considered for inclusion in an iteration.
Caveats and Considerations
The appropriate definition of ready is specific to a given team and is something the team determines as it is starting its work. This is a great discussion for the team to have as they prepare to start working together. As with many of the other techniques discussed in this book, the conversation about creating a definition of ready is invaluable, but the actual result of the discussion can be fairly helpful.
This discussion is particularly interesting with teams that are just starting to work in an agile fashion. This discussion is usually the first time team members begin to realize that they may not need to take analysis to the same extent they used to before adopting agile. Some may not grasp that point until they start trying to get backlog items ready using an extensive definition of ready.
The definition of ready usually rides on the assumption that the first thing that occurs in the iteration is developing code, be it test code or production code.
You may find that some conditions in your definition of ready are considered “when applicable,” or you may have one or two conditions that a few team members pedantically insist on fulfilling as if their lives depended on these things happening on every story. If you have some of those items, leave them as part of your definition of ready for the time being and remind the team that the definition of ready is not set in concrete and is open to revision. This is not to say that the definition of ready can be ignored whenever it’s convenient, but rather the team can intentionally discuss if their definition of ready is working for them during a retrospective and make revisions to it based on experience.
If a team is using a discovery board, the definition of ready serves as the policy for moving an item into the column designated “ready for iteration planning” (“Ready to Rock” in the example shown in the discovery board technique brief).
Definition of Ready Agile Alliance
Using a Definition of Ready by Ben Linders InfoQ