In software development, definition of done specifies all of the conditions that a software product must satisfy to be accepted by the customer. The main driver for establishing DoD criteria is increasing the quality of the product being delivered.
The DoD might differ from product to project, and usually the team (together with client representative) is responsible to figure out the exact criteria that are needed/are going to work for specific project at hand. However, it is good to have a good starting point that becomes cornerstone for the team’s work. Here is our initial Definition of Done for agile projects:
User story:
- Code review accepted
- Automated tests passing
- 80% unit test coverage
- Acceptance tests automated and passing
- Functional tests scenarios created and reviewed
- Integration test scenarios created and reviewed
- 80% of functional and 60% of integration tests automated
- Data migrations scripts created and tested (forwards and backwards)
- Documentation written and reviewed
Sprint:
- All stories in scope merged into sprint branch
- All tests passing
- Demo performed and Product Owner accepted the sprint functionality
- Performance tests passed
- Exploratory tests passed
- No bugs/regressions on the sprint branch