What is Definition of Done (DoD)? | Definition of Done In Agile & Scrum

Welcome to PremierAgile!

Recognized for 'Outstanding Leadership in Education and Learning' by the Education 2.0 Conference Dubai 2024

We are proudly recognized for Excellence in Agile Consulting and Transformation Services – 2023 by Economic Times and Times of India!

*Avail a Flat 10% Discount Across our Agile-Scrum certification courses use coupon code SANTA10

*Avail Zero Interest EMI

Get CSM and CSPO certified at an unbeatable Year-End price of just ₹15,000 – Don't miss out!

We Offer World-class guidance to transform yourself as well as your organizations

PremierAgile

With an objective to enable continuous learning and progression for our learners, PremierAgile curated several learning articles in the areas of Agile, Scrum, Product Ownership, Scaling, Agile Leadership, Tools & Frameworks, latest market trends, new innovations etc...

What is the Definition of Done (DoD) in Agile?

What is the Definition of Done (DoD) in Agile?

Agile Methodology is used in most of the domains such as education, banking, software development, manufacturing, aerospace, banking, etc. as it offers numerous benefits over traditional software methodologies. Implementing Agile is easier said than done. It takes efforts from all the organization members and equal support from the customers and users so that the industry can adopt the Agile Methodology. Many problems, such as resistance to change, misunderstandings between the employees, improper management, internal conflicts, etc.., may come in the way of Agile's success in the industry. One such issue is defining what is done in a project so that success could be measured. There is always a tendency to ship a project off without completing it fully. Hence, while working, the team should have a clear idea about what they should achieve precisely in the project to be termed as done. Hence, a Definition of Done becomes a critical parameter where all the team members accept the project as completed and ship the product to the market.

Defining the Definition of Done (DoD)

The "Definition of Done" (DoD) is an agreed-upon set of items that have to be completed before a User Story or a project can be considered terminated. A set of criteria that a User Story has to fulfill is deemed to be done from the list of User Stories. Only when a User Story qualifies as done, it is considered to be launched as an update in the product. Defining the Definition of Done for a User Story is one of the crucial steps that have to be taken during product development, as each member or a team may have their idea about this definition. This creates confusion, frustration, and delay in development. A proper description of done would save everyone's time and give the chance to plan the development of the User Stories. During the process of development, the project or the User Story is labeled as "In-progress". The Definition of Done becomes the main factor that separates a User Story from being "In-progress" to "Done"

Whenever an increment or a Product Backlog item is considered "Done", it should be clear what "Done" means. This Definition of Done may vary significantly as per Scrum teams. Still, the members should have an understanding of what DoD means so that they can work together to finish a specific product increment. Hence, the DoD is used to assess the work completed on the product increment by the Scrum Team and ensure transparency. The Definition of Done may be a part of the conventions, standards, or guidelines of the development organization that all the Scrum Teams should follow as a minimum. However, if "Done" for an increment is not a convention of the development organization, the Scrum Developer must define the Definition of Done, which is appropriate for the product. 

If multiple Scrum Teams are working on the system or product release, the Developer on all the Scrum Teams should mutually define the Definition of Done. As the Scrum Teams mature, the definitions of Done expands to include more stringent criteria for a higher quality of the product increments. Also, for the definition of Done to effectively work, anyone product or system should have a standard definition of Done so that any work can be done based on it.

What is the Definition of Done?

The definition of Done is the list of criteria set for a product increment, which is often a User Story so that it qualifies to be added as a feature in the product. In the software industry, the Definition of Done is vague and ambiguous, and nobody knows exactly what it means when a product increment is considered done. For a software developer, the purpose of done may be only programming, but for a product increment to be deemed to be done, it should also have a test data created, actually tested, ensuring its deployability, documenting, and even deploying the product, etc. Hence, a proper Definition of Done should be implemented so that the User Story passes all the criteria. It reaches the market in time to generate revenue and increase the product's market value. 

Features of Definition of Done

What are the criteria that one has to look through to consider a product increment as done? While most of the companies have their own definition of done according to their convenience and collaboration, the typical criteria that have to be fulfilled for a product to be considered are listed below.

  • The code should be peer-reviewed
  • Code is Checked-In
  • Code is deployed to the test environment
  • Regression testing should be passed by feature/code
  • The code should give smoke testing
  • Documentation of code
  • Help documentation is updated
  • The Stakeholders approve the feature.

As mentioned, different companies and development groups may have their Definition of Done, but they all stick to the same ideal that the code does what it is supposed to do and does not break anything else. The Developer makes each User Story go through all these criteria such that there is consistency and quality in the code, and the User Story is complete and should not cause any problems in the future. Having a User Story run through different criteria would also ensure transparency in the organization, as ideas for other User Stories come from various organization members. When a particular User Story does not qualify anyone of the criteria, it cannot be further continued. Hence, all the project members would have a clear idea about why a particular User Story could not qualify for further stages.

Levels

The Definition of Done can vary based on various companies and their processes. However, the initial definition of Done should be made very clear before starting the Sprint. This definition should be agreed upon by all the team members, and the communication should be made very clear. Some teams prefer to use three levels or types of Definition of Done. They are:

  • Definition of Done for a feature (User Story or product backlog item): It refers to the criteria that have to be fulfilled for the User Story to be declared.
  • Definition of Done for a Sprint: This refers to the set of conditions and list of items that have to be checked to display a Sprint as done or completed. 
  • Definition of Done for a release: This is the set of checklist items that have to be crossed to release the update to the product.

Usually, the Definition of Done includes designing, coding, integrating, testing, and documenting, which has to be fulfilled to produce a complete set of functionalities. After the items in the definition are completed, the product should deliver a validated value to the customer. The purpose of doing can be more specific or general based on the tasks that have to be completed.

Example for Definition of Done

If an instance of testing the product is considered. The Definition of Done for testing the product feature or User Story includes subdivisions such as Unit testing, Integration testing, System testing, Platform testing, and many more testing types. These subdivisions should be considered while testing the product, and the team should analyze which testing types are required for the work. If any kind of testing is missed during formulating the Definition of Done, for example, the performance testing, the product at the end of the Sprint does not become potentially shippable as performance testing is one of the crucial units while forming a Sprint. If performance testing is postponed, the entire plan gets disrupted, and the team faces many problems. This also may result in spending more money and time to solve the problem that is occurring due to the skipping of performance testing. Hence, the Definition of Done is an integral component that helps that team formulate a robust product by enhancing their confidence and reducing their time getting into unnecessary problems.

Advantages of Definition of Done
  • The Definition of Done provides a checklist that guides the pre-implementation activities such as discussion, estimation, and design. By having a proper Definition of Done, the team can carry on by discussing the plans of moving forward with the development of the User Story. They can estimate the number of resources and time taken for completing each task in the User Story and effectively design so that the product increment qualifies as done at the end of the Sprint. Hence, the Definition guides the developer to pick Product Backlog items during a Sprint Planning meeting. 
  • When a team has a standard Definition of Done formulated for a Sprint or User Story, they do not have to re-evaluate the product increment as it would have chances of failure. They will face lesser chances of facing impediments as the product increment qualifies all the criteria of the done. Hence, lesser impediments also assure that the cost of rework is reduced once the feature is accepted as done.
  •  The Definition of Done acts as a universal criterion for the product increment or the Sprint, which has all the agreed-upon requirements by the Developer, customer, and the Product Owner. Hence, it gives lesser chances of conflicts and misunderstandings among the members of the group. In Scrum Framework, it also creates transparency between the customer, Product Owner, and Scrum Developer.
Who defines the Definition of Done?

The engineering organization is the main lead that has to decide whether the product increment is completed or not by defining the definition of Done. If the framework used is Scrum, it includes the Developer, the Product Owner, and the Scrum Master. Formulating the definition of Done should be a collaborative exercise that should include the product and quality assurance approvals and other Stakeholders. Everyone should agree on what exactly is Done concerning the Sprint or User Story. It is an agreement between a Product Owner and Developer.

Conclusion

The definition of Done becomes an essential checklist that provides transparency in the organization, teams, and customers. It helps reduce and limit the cost of developing the product by preventing the chances of any error during the development of the User Story. It also prevents conflicts between the Developer and the customer. Since the customers' inputs is considered by the Product Owner to formulate the definition of Done, it builds a sense of trust in the customer concerning the organization. It increases customer satisfaction and also boosts confidence in the Developer. The definition of Done also helps that team plan ahead while developing and allows them to stay track while working on the Sprint. Hence, the purpose of doing may vary among companies, but incorporating it. At the same time, the development of any User Story, Sprint, or release is an integral complement of the team's success and the organization.

References
  1. https://www.Scrum.org/resources/Scrum-glossary
  2. https://www.Scruminc.com/Scrum-board/
  3. https://www.zoho.com/Sprints/what-is-a-Scrum-board.html



Useful Links:

The Three Pillars Of EmpiricismCertified Scrum Product Owner Course ChinaWriting Effective Acceptance CriteriaProduct Owner Virtual Training Course HyderabadScrum Master Online Training Saint LouisAdvanced Scrum Master Course Training BergenSAFe Agilist Course BerlinScrum Master Course MadisonAdvanced-CSM Course Training JacksonvilleCSPO Certification Gurgaon

Author

Priyanka Datt

Has nearly 15 years of experience as a practitioner in the areas of Agile and Scrum. She delivers training and coaching programs for organisations and teams across the globe. She is helping budding Scrum Masters and Product Owners to learn and grow in their careers.