Definition of Done - SeoulSKY/safe-zone-system GitHub Wiki
Definition of Done
- This is split into two sperate parts
- The definition of what it means to be done to be able to be put into review
- The definition of what it means for the task to be done and be able to be closed
Development
In Review
- Developer
- Ensure that the code is following the google coding standards
- Ensure that the code is following test driven development
- Ensure that the design documents are updated if changes are made to the design in this task
- Ensure that the code does what the issue says it should do
- If there is an issue with the task, explain what the problem was and what has been done to address is
- Ensure that the code has and follows code contracts
- Ensure that code contracts are clear and concise
- If there aren't any code contracts in this code, explain why they aren't needed
- Ensure that the code has assertions for all assumptions and that they satisfy the conditions of the code contracts
- If there aren't any assertions in this code, explain why they aren't needed
- Ensure that the commits follow good commit message standards
- List all the developer testing that has been done for this issue
- Ensure that the code passes all existing CI tests
- If the code removes or comments out some CI tests comment with a good reason why that is
Done
- Have the PR be reviewed by at least 2 other team members
- Reviewers
- Ensure that the code meets the definition of done for in review
- Check for any issues that could arise from this code being merged
- Developer
- Update the code according to any issues found by the reviewer
- Reviewers
Testing Case Creation
In Review
- Tester
- Document whether these tests will be run automatically or manually in the end
- Ensure that the all cases of the code/feature/system to be tested are covered
- If the test will be run automatically, what infrastructure would we need to run them automatically
- Document if we currently have the infrastructure to automate these tests
- If we don't, what kind of infrastructure is needed?
- Document if we currently have the infrastructure to automate these tests
Done
- Have the test cases be reviewed by at least 2 other team members
- Reviewers
- Ensure that the test cases meet the definition of done for in review
- Tester
- Update the test cases based on concerns found by the reviewers
- Reviewers
Test Case Implementation
-
Tester
- Ensure that the code is following the google coding standards
- Ensure that the code test what the issue says it should test
- If there is an issue with the task, explain what the problem was and what has been done to address is
- Ensure that the commits follow good commit message standards
- Ensure that the code passes all existing CI tests
- If the code removes or comments out some CI tests comment with a good reason why that is
- If the code has been created, does the code pass the tests
- Documented the test cases and the results of running them
- If it does not run as expected, create and link bug reports
-
Reviewer
- Have the test case implementation be reviewed by at least 2 other team members
- Reviewer
- Ensure that the document meets the definition of done for test case implementation
- Author
- Update the document with any changes requested by the reviewers
- Reviewer
- Have the test case implementation be reviewed by at least 2 other team members
Documentation
In Review
- Author
- Ensure the document contains what the task said to document
- Ensure the document has everything that it is supposed to
- Is there anything else that can be added that is not covered in the task?
- Ensure that the document is appropriately written for the target audience
- Ensure that the document has been proofread
- Ensure that the document does not contain spelling errors
- Ensure that the document does not contain any misleading or unclear sentences
- Ensure that the document has a consistent tone/voice
- Ensure the glossary has definitions for all terms that are could be unclear
Done
- Have the document be reviewed by at least 2 other team members
- Reviewer
- Ensure that the document meets the definition of done for in review
- Author
- Update the document with any changes requested by the reviewers
- Reviewer
Bug
In Review
- Developer
- Writes code to fix the bug according to definition of done for development tasks
- Ensure all reported instances of the bug have been fixed and verified to not occur any more
- Document what caused the bug if possible
- Document if there's anything that could be done in the future to prevent adding another similar bug
- Document all the testing that has been done to ensure that this bug was fixed
- Document if any unit/regression tests were added to prevent this issue from reoccur
Done
-
Have the PR be reviewed by at least 2 other developers
- Reviewer
- Review the bug fix according to the definition of done for development tasks
- Verify that there aren't any new issues that could be introduced by this fix
- Developer
- Address any issues found by the reviewers
- Reviewer
-
Have the bug be tested by a tester to ensure that the issue has really been fixed
- Tester
- Verify that on the latest version of the code, the bug is not reproducible
- Verify that any additional issues that might have been broken with this fix were not introduced
- Developer
- Fix any additional issues found coming from the bug fix
- Tester