It is the comprehensive and shared understanding of completeness for items that a development team must achieve to consider an item as “Done”. Creating a robust and clear DoD is an iterative process and needs to evolve as the team learns more about their work and how they conduct it. Here we outline a way to create a DoD, relating it to the Certified ScrumMaster (CSM) context.
1. Gather your Scrum Team
Because the DoD should be a shared understanding, the first step is to gather all associate team members. This generally includes product owners, developers, Scrum Masters, and any other key persons involved in the project. Open and candid communication at this stage aids the definition of realistic expectations.
2. Define your Criteria for ‘Done’
Start by recognizing and listing the specific details that constitute ‘Done’ in your context. Generally, this part is the trickiest, as it carries the risk of being minimally defined. For instance, a criterion might refer to the functionality (code must be designed, tested, reviewed, and approved), technical quality (adhering to design principles, coding standards, security parameters, etc.), documentation, non-functional requirements, and more.
Note: CSM exam takers should remember that this clarity ensures agreement among all stakeholders about the state of the product, and also helps in calculating the Velocity of the team.
Criteria | Examples |
---|---|
Functionality | Code must be designed, tested, reviewed, and approved |
Technical Quality | Adhere to design principles, coding standards, security parameters |
Documentation | Proper inline comments, technical specification documents |
Non-functional Requirements | Performance, security, and usability |
3. Prioritize the Criteria
After the criteria are listed, prioritize them according to their importance and relevance to your project. Prioritization would help when there is a constraint in resources or time and decisions need to be made. Here, you pull the most significant items to the top and the least to the bottom.
4. Stakeholder Approval
Once created, make sure the DoD is accepted by every level of stakeholders, including product owners, customer representatives, and anyone else with interest in the product. Stakeholder approval is essential for preventing any assumptions or hidden expectations.
5. Iterate and Revise
Like other aspects of Scrum, the DoD is also iterative and incremental. The DoD should be regularly reviewed and revised as new insights are gained from the development process, customer feedback, and team retrospectives.
For instance, let’s say our project is to create a web application. A very basic DoD for the team can be as follows:
- Code is written and reviewed: All code must have been written, reviewed, and approved by at least two other developers. This ensures that the code meets the established coding standards and prevents any potential bugs or issues from slipping through unnoticed.
- Unit tests are written and pass: The code must include unit tests, and all of these tests must pass. A codebase that doesn’t include tests is a codebase that is difficult to maintain and expand upon.
- Integration tests pass: All integration tests must pass. If the application doesn’t work as an cohesive unit, then it isn’t done.
- Application is deployable: The application must be in a state that is ready to deploy. If we can’t deploy the application, then we’re not done.
- Documentation is written: Any necessary documentation, whether for users or for future developers, must have been written. Without documentation, the application is still not quite complete.
Remember, just as each Scrum Project is unique, so is the DoD for each team. It is highly beneficial for a CSM to understand the importance of a well-constructed DoD as it impacts the productivity and morale of the Scrum Team and leads to a high-quality product.
Practice Test
True or False: In Scrum, a Definition of Done is created only at the start of the project and is never revisited or revised.
- True
- False
Answer: False
Explanation: The Definition of Done can and should be revisited and revised as necessary throughout the Scrum project as the team learns and the project evolves.
Which of these is a technique a Scrum team can use to create a Definition of Done?
- a) Collaborative brainstorming
- b) Decree by the Scrum Master
- c) A template provided by the Product Owner
Answer: a) Collaborative brainstorming
Explanation: Creating a Definition of Done is a collaborative process that should involve the whole Scrum team, not just the Scrum Master or Product Owner.
True or False: The Product Owner is solely responsible for creating the Definition of Done.
- True
- False
Answer: False
Explanation: All team members contribute to creating the Definition of Done as it is a collaborative effort that ensures a shared understanding of what it means for work to be completed.
What could be included in a Definition of Done?
- a) Code has been reviewed
- b) Product has passed all tests
- c) Documentation has been completed
- d) All of the above
Answer: d) All of the above
Explanation: A Definition of Done should outline all the necessary steps required for a feature to be considered complete.
True or False: A Definition of Done needs to be identical across all the Scrum teams in a company.
- True
- False
Answer: False
Explanation: Different Scrum teams can and often do have different Definitions of Done, based on context, project nature, and team agreement.
The Definition of Done helps to foster:
- a) Communication
- b) Transparency
- c) Trust
- d) All of the above
Answer: d) All of the above
Explanation: The Definition of Done promotes communication, transparency and trust by clearly defining what finished work looks like.
Who should agree on the Definition of Done?
- a) Scrum Master
- b) Product Owner
- c) Development Team
- d) All of the Above
Answer: d) All of the Above
Explanation: All members involved in Scrum have to agree on the Definition of Done to achieve a common understanding.
True or False: The Definition of Done can include non-technical aspects.
- True
- False
Answer: True
Explanation: The Definition of Done can include other non-technical aspects, such as documenting or sharing knowledge about the task or feature.
True or False: A Definition of Done is just a checklist.
- True
- False
Answer: False
Explanation: While a Definition of Done can take the form of a checklist, it’s more than that. It’s a shared understanding within the Scrum Team about the criteria that must be met.
True or False: The Scrum Guide prescribes a specific way to create a Definition of Done.
- True
- False
Answer: False
Explanation: The Scrum Guide does not prescribe a specific way to create the Definition of Done. The approach depends on the team’s consensus and the nature of the project.
True or False: The Definition of Done is agreed upon during the Sprint Retrospective.
- True
- False
Answer: False
Explanation: The Definition of Done is usually established during the Sprint Planning meeting, not the Sprint Retrospective.
True or False: The Definition of Done helps to provide a clear cut-off point for when a task is considered completed.
- True
- False
Answer: True
Explanation: The Definition of Done helps in determining whether a particular task is completed as per the team’s standards or not.
True or False: The Definition of Done encourages guesswork on when a task is completed.
- True
- False
Answer: False
Explanation: The Definition of Done reduces uncertainty and guesswork, providing clear expectations for completion.
A Definition of Done is equivalent to:
- a) User stories
- b) Acceptance criteria
- c) Product backlog
- d) None of the above
Answer: d) None of the above
Explanation: A Definition of Done is not the same as user stories, acceptance criteria, or the product backlog. It’s a set of conditions that a piece of work must meet to be considered complete.
True or False: A solid Definition of Done can lead to better and potentially increase the velocity of the Scrum team.
- True
- False
Answer: True
Explanation: A well-defined Definition of Done can streamline the team’s workflow and potentially increase efficiency, thus improving the velocity of the Scrum team.
Interview Questions
What is the Definition of Done in Scrum?
The Definition of Done (DoD) in Scrum is a shared understanding among the team about what it means for a task to be complete. It describes the conditions that must be met for an increment to be considered done.
How can a team create a Definition of Done?
The team should collaboratively define what it means for work to be completed. This can be a set of criteria or a checklist. It might include elements like the code is written, tests have been written and passed, and the feature has been documented.
Who should be involved in creating the Definition of Done?
The whole Scrum team, including the Product Owner and Scrum Master, should collaborate in creating the Definition of Done.
Can the Definition of Done vary from one Scrum team to another?
Yes, the Definition of Done can certainly vary from one team to another as it depends on the organizational culture, tools, and technologies in use, and the business needs of the product they are developing.
Can the Definition of Done change during a project?
Yes, the Definition of Done can and should evolve as the team gains more experience and makes improvements in their process.
What’s the impact of the Definition of Done on the delivery of the product increment?
A well-defined DoD ensures that every increment of the product is potentially shippable, it improves the quality of work and minimizes the amount of rework.
How does Definition of Done facilitate transparency in Scrum?
Since Definition of Done specifies all the conditions that must be met for a task to be considered ‘done’, it provides a clear understanding for everyone in the team, thereby increasing transparency.
Can Definition of Done help in reducing Technical Debt?
Yes, a well-defined DoD can help manage Technical Debt as it can include criteria for ongoing quality checks, code reviews or ensuring a proper documentation.
Is Definition of Done same for all items on the Product Backlog?
Yes, the Definition of Done applies uniformly to all items on the Product Backlog to ensure a potentially releasable Increment is always realized.
How should Definition of Done be communicated with the Scrum team?
The Definition of Done should be communicated clearly and should be visible to everyone in the Scrum Team. This could be on a wall near the Scrum board, on the team’s Wiki, or as information radiators.
How does the Definition of Done help the Product Owner?
It helps the Product Owner determine when a feature is complete and ready to be delivered. It ensures that the expectations are met with respect to the quality of the work that is being deployed.
Can there be different Definitions of Done at the feature, sprint, and release levels?
Indeed, there can be. The Definition of Done for a feature may require unit tests pass; for a sprint, it may require that integration testing is done; and a release may require performance and security testing is completed.
Why is having a Definition of Done important in Scrum?
The Definition of Done is important because it sets the expectations for what will be delivered at the end of each Sprint, improves transparency, enables predictability, and ensures adherence to quality standards.
What happens if a work item doesn’t meet the Definition of Done at the end of the Sprint?
If a work item doesn’t meet the Definition of Done by the end of the Sprint, it should not be released. Instead, it should be re-evaluated and probably put back on the Product Backlog for a future Sprint.
Is Definition of Done mandatory in Scrum?
According to Scrum Guide, having a Definition of Done is not mandatory but it is a very powerful tool for adding transparency and ensuring quality.