Many teams use the Definition of Done (DoD) to check if a user story is finished and the product is ready to be delivered. But what about the user stories that a team receives from their product owner? Teams can check the quality of the user stories using a Definition of Ready. While the value of the Definition of Done (DoD) and Team Working Agreement has long been understood by serious agile teams, in my experience, the Definition of Ready (DoR) is one of the least utilized, yet more powerful tools an agile team can employ. While the DoR can be used for multiple artifacts and activities (Product Backlog, Sprint Review, etc), for new teams I prefer to start with a DoR for backlog item readiness, which introduces the concept into planning preparation, an important part of the work stream
Definition of Done represents the set of criteria that a product increment must meet to be considered complete. It is a shared agreement within the Scrum Team, including developers, testers, and other stakeholders, about the state of the product at the end of a Sprint. The DoD ensures that the product increment is of sufficient quality and ready for potential release..
Definition of Ready sets the criteria that a user story or backlog item must meet before it is pulled into a Sprint. It ensures that the necessary information, details, and conditions are in place for the Development Team to start working on the item. The DoR serves as a checklist to determine the readiness of a user story.
DoD (Definition of Done) and DoR (Definition of Ready)
During a sprint each product backlog item should satisfy a set of conditions (acceptance criteria), stated by the Product Owner. These acceptance criteria are ultimately verified in the acceptance tests. E.g. if the product backlog item is- “A customer wants to purchase the clothes online”, the choices of shopping websites might be “Shopping from Amazon, Flipkart, Myntra, and Jabong”.
So, each Product Backlog item has a suitable set of acceptance criteria. The DoD is applied during a Sprint to the product increment that is yet to be built. The product increment is nothing but a set of the product backlog items and each product backlog item must conform to the definition-of-done checklist.
A product backlog item can be said ‘done’ if and only if the item-specific acceptance criteria (e.g., “all shopping options are allowed”) and the sprint level definition-of-done (e.g., “live on the production server”) have been met.
The “Definition of Ready” (DoR) is primarily used before a backlog item enters a Sprint. It serves as a set of criteria that a user story or backlog item must meet before a Scrum Team considers it ready to be pulled into a Sprint backlog and worked on during the upcoming Sprint. The Definition of Ready is applied during backlog refinement sessions, which occur regularly throughout the product development process.
Acceptance Criteria
- Clarify what the team should build before they start work
- Ensure everyone has a common understanding of the problem
- Help the team members know when the Story is complete
- Help verify the Story via automated tests.
Definition of Done (DoD) Example:
The Definition of Done represents the criteria that must be met for a product backlog item to be considered complete. This includes both functional and non-functional aspects.
- Functional Criteria:
- All code is written, reviewed, and committed.
- Unit tests are created, and the code passes all unit tests.
- Acceptance criteria are met.
- All automated tests pass successfully.
- The feature is integrated into the main branch.
- Non-Functional Criteria:
- Code is well-documented.
- Code adheres to coding standards.
- User documentation and release notes are updated.
- Performance and security testing are conducted and pass.
- Product Owner has reviewed and accepted the work.
- Deployment and Release:
- Code is deployed to a staging environment for final testing.
- Deployment scripts and configurations are prepared.
- Product is ready for release.
Definition of Ready (DoR) Example:
The Definition of Ready outlines the criteria that a product backlog item must meet before it is ready to be pulled into a Sprint for development.
- User Story Clarity:
- User story is written in a clear and concise manner.
- Acceptance criteria are detailed and unambiguous.
- Dependency Identification:
- Dependencies on other backlog items are identified and addressed.
- Any external dependencies are acknowledged and mitigated.
- Estimation Readiness:
- Team has sufficient information to estimate the effort required.
- Acceptance criteria are detailed enough for estimation.
- Acceptance Criteria:
- Acceptance criteria are well-defined and cover all aspects of the user story.
- Criteria are written from an end-user perspective.
- Design Considerations:
- High-level design considerations are discussed.
- Any design decisions impacting the user story are made.
- Resource and Skill Availability:
- Necessary skills and resources are available for implementation.
- Any skill gaps are identified and addressed.
DoD vs DoR
Both, DoD and DoR, are mostly formed during retrospective meetings. And this is why the retrospective is the most important meeting in Scrum. Don’t ever skip it or let it become unproductive!
Aspect | Definition of Ready (DoR) | Definition of Done (DoD) |
---|---|---|
Timing | Applied during backlog refinement before a backlog item enters a Sprint. | Applied at the end of the Sprint when evaluating the completeness of the product increment. |
Focus | Prerequisites for starting work on a backlog item. | Criteria for completing a product increment. |
Scope | Specific to individual backlog items or user stories. | Applies to the entire product increment developed during a Sprint. |
Prevention vs. Completion | Prevents items from entering the Sprint prematurely. | Ensures that completed work meets quality and completeness standards. |
Components | – User story is well-defined and understood. – Acceptance criteria are clear. – Dependencies are identified and resolved. – Necessary resources are available. – Priority is established. | – Code is reviewed and meets quality standards. – Unit tests and integration tests are passed. – Acceptance criteria are fulfilled. – Documentation is updated. – Product Owner has approved the increment. |
Purpos | Enhances Sprint Planning efficiency by ensuring backlog items are adequately prepared. | Maintains transparency, fosters collaboration, and delivers a reliable and potentially shippable product increment. |
Conclusion
In the intricate dance of Scrum, the Definition of Done and Definition of Ready are essential choreographers, each playing a unique role. By understanding and implementing these definitions effectively, Scrum Teams can enhance their agility, collaboration, and the overall success of their Sprints. Balancing the readiness of backlog items with the completeness of the product increment ensures a harmonious and productive Scrum journey.