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

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?

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

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

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

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
  • 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