Definition of Done
What is Definition of Done?
The Definition of Done is an agreed upon set of items that must be completed before a project, user story, test case, deployment steps etc. can be considered complete. It is applied consistently and serves as an official gate separating things from being “in progress” to “done.”
What are the perspectives that have to be covered?
- Development
- Test
- Deployment
- Documentation
Development Perspective
- Code have to be written by following defined code formatting.
- Comments have to be added to explain complex solutions.
- Implementation have to be complete within defined code complexity levels
- Any other third party solution(Library, Framework etc.) which endangers CDP, should not be used in implementation.
- Before committing implementation, written code/solution have to be reviewed by at least other one developer.
- If implementation needs integration with another module and the module has not implemented during implementation, mock data or mock module should be used to test implementation.
Test Perspective
- Unit tests have to be written by developer.
- All edge cases have to be tested by the developers.
- If it is needed, to keep CI/CD pipeline alive, necessary updates have to be done on CI/CD configuration for tests.
Deployment Perspective
- Implementation has to be tested by the testers before deployment.
- Before deployment, tester has to complete all regression tests to be sure that implementation is not effects any other modules.
- Before deployment, all automated tests have to be run. If test coverage below defined coverage percentage, implementation have to be rolled back.
- If implementation uses third party solutions/app, the packages should be added for deployment environment(Docker or Yocto scripts)
Documentation Perspective
- If implementation steps have complex solutions, developers have to write a document or update existing development documents to explain their solutions properly.
How the Definition of Done should be?
Definition of Done may not be covered all items which is listed above. Project members have to select necessary items for their and customer needs. The items can be extended and teams can add their own custom rules to team’s definition of done list. The most important rule is, each team member has to be beware of the definition of done and follow the rules.
Definition of Done Example
- Code has to be written by following defined code formatting.
- Comments have to be added to explain complex solutions.
- Implementation has to be complete within defined code complexity levels
- Change log has to be updated after each completed product backlog item.