Scrum requires that each Sprint deliver a usable product increment at the end of the time-boxed Sprint. In order for the product increment to be usable it must have had all required work completed. Any incomplete work is likely to render the product increment unusable, at least until the work has been completed in a later Sprint.
A usable product increment is therefore one that has all work associated with the Sprint completed, or “done”. How do we know that the work on the Sprint, or work items within the Sprint have been “done”? Typically someone on the Scrum team will say that the work item has been “done”, however without a common understanding of what we mean by “done” it is open to misinterpretation both within the Scrum team and with the team’s stakeholders & customers.
Defining a piece of work as “done” when it has been built but not tested for example only takes into account the views of the person responsible for building it. It doesn’t factor in the work of other team members that now need to complete their tasks. This can result in misunderstandings both within and outside of the team. The customer may very well wonder why they can’t start using this new piece of work if it’s now “done”, as there is nothing here to convey the need for testing, documentation, or user testing.
What is needed is a clear unambiguous definition of what is meant by “done” that the whole team can use. This Definition of Done ensures a common language and meaning within the Scrum team that ensures clarity and consistency of understanding. The Definition of Done also ensures that those stakeholders outside of the Scrum team are also using the same terminology and understanding as the team building the product increment, thereby reducing the opportunity for misunderstanding or confusion.
A Definition of Done is a simple statement or bullet-point list of activities that the Scrum team agrees must be completed before a piece of work can be considered completed and usable. The Definition of Done must be produced by the team doing the actual work, and must reflect all aspects that they agree are necessary for a piece of work to be defined as complete and usable. The definition must be based on those value added activities, that the team can commit to, that ensure the quality of the work items produced by the team.
Different teams working on different products/projects may well define their own, different Definitions of Done. However, multiple teams working on a product that integrates the work from the multiple teams must define a Definition of Done that is common and shared across all teams involved in the product.
Different Definitions of Done can exist for different levels within Scrum (Feature, Sprint, Release). Typically teams start by focusing on ensuring the Definition of Done is in place for the Feature/Work Item level. Then, as the team matures in their knowledge and application of Scrum, the Definition of Done also grows to include the Sprint & Release levels.
For Scrum to be effective it requires that all team members, and those that the team interacts with, have the same common understanding of the value added activities that must be completed before a feature, sprint or release can be considered “done”.
Remember though, Scrum advocates Transparency, Inspection & Adaption. Therefore the Definition of Done is never carved in stone. It is instead able to be reviewed, revised and improved upon as the team gains new knowledge and insights.