A definition of done is a checklist of criteria that a product, product increment or project must satisfy to be considered completed.
The need for such a list arose as a way to ensure that all involved parties clearly understand what is meant when someone says something is “done.” A programmer, for example, might say software was done once he had finished writing the code. On the other hand, a product owner might not consider the software done until it had been thoroughly tested and was essentially ready for release. The definition of done is intended to be stringent enough to satisfy any stakeholder.
Here’s a sample definition of done:
- The build is in a release-ready state and available for download.
- Documentation is complete.
- Any unimplemented or inactive features are hidden from the user.
- Testing is complete.
- The source code is committed on the server.
- Code has been reviewed.
- Demo or manual has been reviewed and presented to the product owner.
- The product owner has given approval.
A definition of done might be posted in a visible area in the team’s shared workspace, on what is called a Big Visible Chart (BVC) or an information radiator.