If philosophy was born from the astonishment of the first philosophers, then the Definition of Done — as a particular practical need — was born from the astonishment of the "first" Product Owner and uncertainty of the "first" Scrum Team, which understood the word "done" in an arbitrary way.
It's a bit of an anecdotal and humorous description of the source of the Definition of Done. However, the matter, as always, is pretty serious. "Definition of Done Scrum," "Definition of Done Agile," and "Definition of Done examples" are often used phrases in search engines.
Their popularity is understandable. It's understandable the more we're aware of the problematic nature of one of the most important terms within the Scrum framework, namely the Definition of Done.
Why? Because of a pretty trivial and simultaneously very volatile reason.
Perhaps one of the most challenging tasks during digital product development is determining whether a given functionality is finished or requires some additional work.
Without an unambiguous answer, leading a project in a smooth, rational, purposeful, and understandable way for everyone involved isn't easy.
Simply put:
The Definition of Done is crucial for smoothly running the scrum team (or multiple scrum teams), the course of the project, and the quality of the digital product.
We should immediately emphasize that completing a given task during the creation of digital products doesn't mean that work has been completed.
And what's even more critical: the completion of given tasks can't be just declarative; it should be determined through clear and specific criteria (acceptance criteria), which in an unbiased way will decide whether the given element of the Product Backlog can be deemed finished.
In this article, which is another brick for the corpus of texts on Scrum framework, we'll look at the problem of defining and determining criteria of done.
We cordially invite you to read the article!
Definition of Done — what is it?
Before we move on to the definition, let's start with a more general remark that should resound strongly at the outset.
The Definition of Done (often shortened to DoD) allows us to work more efficiently and with certainty that the set goal was achieved.
The mental comfort of scrum team members and all stakeholders is a precious value and concrete benefit that shouldn't be underestimated.
Because it has a profound and extensive influence on the duration of a project, the atmosphere in the scrum team, the budget, and the end result — the quality of a digital product.
It's worth remembering because the Definition of Done isn't always, unfortunately, a common practice or fully appreciated.
A lack of DoD almost always ends the same way — in chaos, stress, conflicts, communication problems — or simply in a waste of time and budget.
Alright then, what is the Definition of Done?
Definition of Done in agile methodologies is often defined as a collection of criteria upon fulfillment of which a given project or its element can be considered finished.
You can also think about the Definition of Done as a checklist that will allow you to replace uncertainty with assurance. Thanks to it, you can know what a scrum team expects from a Product Owner and stakeholders and vice versa.
Definition of Done also enables us to eliminate from the project presumptions and perceptions and replace them with a common, shared "platform" for understanding requirements.
With that said, we need to add to it an essential remark. The Definition of Done is not just a list of criteria to uncheck.
The Definition of Done should be created as a complementary combination of the following:
- Clearly and unambiguously defined work
- Increments that are valuable from the perspective of stakeholders, especially business stakeholders.
An Increment occurs when a given element of the Product Backlog (e.g., user stories) meets the Definition of Done; hence it's consistent with the formal description of the state that should be achieved.
So, Done means that a given Task or User Story doesn't require any more work, and the achieved effect is valuable from the business needs perspective.
In other words, the Increment is valuable when an element from the Product Backlog meets the criteria defined in the Definition of Done.
In the article "What is the Definition of Done (DoD)?" The DoD is defined as:
"A simple list of activities (writing code, coding comments, unit testing, integration testing, release notes, design documents, etc.) that add verifiable/demonstrable value to the product."
According to the interpretation proposed in the "Scrum Guide," the Definition of Done should ensure clarity and offer a shared understanding of what work has been done within the Increment.
What's even more important and what's recommended by the authors of the "Scrum Guide," an element that doesn't meet the Definition of Done shouldn't be assigned the status of Release and shouldn't be presented during the Sprint Review.
A crucial function of the Definition of Done is also reporting. When we're sure that functionality is completed, we can communicate this information to team members, Product Owner, and other stakeholders.
Another advantage of the Definition of Done is also that it can be used on different levels — for example, separately for a given functionality, User Story, separately for the entire Sprint and Release.
The Definition of Done in the Scrum framework is a checklist that determines conditions that need to be met to consider an item from the Product Backlog as finished and thus obtain an Increment.
It's worth remembering that the Definition of Done influences the quality of a digital product (its perfection and flawlessness, which translate to usability), the competitiveness of a digital product, and the user experience it offers.
The Definition of Done can also be influenced by user feedback as it can prompt further development and make the scrum team revisit the items that were deemed as "done."
To conclude our discussion of definitions regarding the constitutive features of the Definition of Done, it's necessary to add that it is understood and used at three levels.
When thinking about the Definition of Done, you may have in mind the following:
- Definition of Done for User Stories — the collection of criteria that need to be met to consider a User Story as finished.
- Definition of Done for a Sprint — it refers to the set of conditions necessary to declare the Sprint completed.
- Definition of done for a Release — it includes the collection of criteria that allow you to recognize a digital product update as ready to Release.
The above statements sound pretty simple and suggest we deal with an easy task. Unfortunately, that's not the case. In practice, the Definition of Done is a challenge.
Defining the Definition of Done is sometimes a troublesome task; the following question will help you with it:
- Was Acceptance testing conducted and completed?
- Were the Unit tests successfully completed?
- Was the entire code checked?
- Was the code completed?
- Was Functional testing performed?
The most important advantages of the Definition of Done
An example of the Definition of Done can look like this:
The example above clearly illustrates that the Definition of Done is used to unambiguously determine the scope of tasks and work in an understandable way and leaves no doubt (as much as possible) as to what the creators of the DoD had in mind when formulating a given criterion.
As a result, the Definition of Done provides the scrum team with the following:
- Concreteness and unambiguity
- Understandability and a common point of reference
- Clarity and transparency
- Quality and risk reduction
- Efficiency and work harmony.
The Definition of Done gives all scrum team members a common understanding of the work performed, ensuring that everybody is on the same page.
It's also a common reference point that all scrum team members should refer to.
Using criteria that everyone shares allows us to maintain the high quality of the developed software. It also enables us to onboard new scrum team members faster and improve the cooperation between the scrum team and other teams (such as the technical team, product team, or engineering team).
It's worth returning to the abovementioned matter of the value that should be achieved simultaneously with the work.
Offering finished (indisputable, unambiguous, and without doubt), Increments allows us to achieve and maintain a competitive advantage.
Another benefit is the possibility of faster and better-addressed adaptation to changing market, technological and project conditions.
The Definition of Done is mainly responsible for the place a digital product or an organization occupies on the market, how it is perceived, and what user experience it offers.
Unambiguity of the "Done" status enables us also to avoid making misguided, unnecessary, and sometimes even harmful decisions, which are most often the result of uncertainty, ambiguity, or overinterpretation.
The "Done" status is, in a sense, indisputable, conclusive, and transparent. Thanks to it, all team members and stakeholders know what it means, thus eliminating doubts.
The Definition of Done also has a diagnostic function. If not literally, then in a sense.
Let's note that the inability to meet a given criterion is always proof of a particular information, competency, experience, knowledge, or tool deficit.
In many cases, it's also an indicator of an error that was made somewhere.
The diagnostic function of the Definition of Done can result in a particular type of prevention — elimination of problems so that they don't disrupt the process in the future.
The Definition of Done also influences the ability of the scrum team to plan work and determine goals over various time perspectives.
In the article "What is Definition of Done in Agile?" the authors list three fundamental benefits of using the Definition of Done.
The Definition of Done provides the following:
- Transparency — with a common reference point and collection of rules, the team is not threatened by chaos and uncertainty.
- Inspection — allows us to catch errors and aggregate opinions and feedback quickly.
- Adaptation — which, based on control, enables us to implement adaptations, improvements, and corrections.
Furthermore, the use of the Definition of Done supports the following:
- Sense of responsibility — each team member knows what to do and what is expected of them
- Punctuality — clear rules motivate and positively discipline punctuality of deliveries
- Planning and estimating — unambiguous criteria and definitions allow us to determine what is needed to finish the project
- Smoothness of delivery — by knowing what the goal is and what product is to be delivered, we know what needs to be done to make it so
- Concreteness and precision — also regarding the development of the product.
To summarize, the Definition of Done is directly responsible for the efficiency of teams working in agile methodologies. It also has considerable significance when it comes to the work atmosphere and its quality.
It allows scrum teams to develop best practices, standards, and behavioral patterns that guarantee high quality, clarity, and consistency of software development.
The Definition of Done for developers means clarity of expectations and unambiguousness of goals.
A well-defined Definition of Done results in a sense that the potentially deployable Increment of software meets standards concerning quality and usability.
Best practices for creating the Definition of Done
The quality of the Definition of Done influences the quality of the implemented User Story, a particular feature, functionality, and a digital product.
Defining the Definition of Done should be a team effort, and all stakeholders should actively participate.
Often a technique that allows the team to more quickly and efficiently "write" the Definition of Done is brainstorming, which the development team can initiate.
Questions that support the creation of the Definition of Done concern the following:
- Conditions that need to be met for the product to be used
- Environment that should work according to expectations
- Tests that prove its reliability and quality
- Documentation.
A best practice is also delegating a separate owner to each criterion who should be an arbitrator in a situation of disagreement.
The primary goal is to obtain consistency and eliminate all ambiguities and doubts.
While creating the Definition of Done, it's worth remembering a few rules that enable the team to make it as effective, useful, practical, and valuable as possible.
Above all, the Definition of Done should be:
- Demanding and simultaneously optimal — without threatening to frustrate scrum team members
- Realistic — possible to accomplish
- Understandable and communicative
- Simple and concise
- Unambiguous
- Conclusive.
Many authors emphasize that a feature without which it's impossible to think about useful Definition of Done is its visibility for all stakeholders.
The Definition of Done should be a result of cooperation. It should be a document that various stakeholders actively use, meaning that it should be written in clear and concise language.
Moreover, the creation of the Definition of Done means the need to determine activities and ways that are necessary to achieve the expected result.
It also requires thinking about and indicating an addressee, determining who can meet a given criterion, with what tools, at what time, and in which Sprint.
While creating the Definition of Done, it's also worth paying attention to some pitfalls that authors affiliated with Agile Alliance mentioned in the article "Definition of Done."
They rightly point out the need to adequately express the amount and difficulty of criteria.
Common pitfalls during the creation of the Definition of Done:
- Excessive meticulousness of the list of criteria that, instead of supporting the achievement of the goal, hinders it
- Omitting "done" criteria at the User Story level and operating only on higher-level criteria — Epic
- Narrow audience of the DoD, which definitely reduces its effectiveness.
The Definition of Done should be a "living" and helpful tool; thus, the work on it is always processual. It's not enough to create the Definition of Done once; updating this document is necessary.
The need to perform inspections and adaptations is essential. The regularity of these activities is equally important, as is the relatively short time interval separating them.
The Definition of Done shouldn't be long; instead, it should include the minimum work generally required to complete an item from the backlog.
In terms of substance, special attention should be given to how certainty is obtained. Hence, the crucial questions are questions about criteria that determine the fulfillment of business requirements and those regarding quality.
Definition of Done — what is it? Summary
- One of the most challenging tasks during digital product development is determining whether a given functionality or implemented User Story is finished or requires some additional work.
- While creating digital products (websites, mobile applications), you should remember that completing tasks can't be only declarative, but it should be determined through clear and specific criteria.
- The lack of the Definition of Done often results in growing uncertainty, stress, and communication problems.
- It creates the risk of wasting time and increasing the budget needed to run the project.
- It's worth remembering that the Definition of Done is not just a list of criteria to uncheck.
- Done means that a given Task or User Story doesn't require any more work, and the achieved effect is valuable from the business needs perspective.
- The Definition of Done is understood and used at three levels. It can be created for a given functionality, User Story, or separately for the entire Sprint and Release.
- The Definition of Done gives all scrum team members a common understanding of the performed work. It's also a common reference point that all scrum team members should refer to.
- The Definition of Done is mainly responsible for the place a digital product or an organization occupies on the market, how it is perceived, and what user experience it offers.
- The Definition of Done is directly responsible for the efficiency of teams working in agile methodologies.
- A well-defined Definition of Done results in a sense that the potentially deployable Increment of software meets standards concerning quality and usability.
- Defining the Definition of Done should be a team effort, and all stakeholders should actively participate.
- The Definition of Done is a document that various stakeholders actively use, meaning that it should be written in clear and concise language.
- The Definition of Done should be a "living" and helpful tool; thus, the work on it is always processual.
- It's not enough to create the Definition of Done once; updating this document is necessary.