• Environments are prepared for release
    • no unintegrated work in progress has been left in any development or staging environment
    • the continuous integration framework is verified and working
      • including regression tests and automated code reviews
    • The build engine ought to be configured to schedule a build on check-in. It may also trigger hourly or nightly builds
    • all of the test data used to validate the features in the release has itself been validated
  • Handover to support is complete
    • design models and specifications, including user stories and tests, accepted by support
    • support also be satisfied that they are in competent control of the supporting environment
  • Review Ready
    • preparing for the review. Sprint metrics available
    • user stories which have not completed are re-estimated and returned to the PB
  • Code Complete
    • Any and all “To Do” annotations must have been resolved
    • the source code has been commented to the satisfaction of the DT
    • Source code should have been refactored
    • Note that the Red-Green-Refactor pattern found in Test Driven Development is helpful here
    • Unit test cases must have been designed for all of the features in development
    • relevant naming conventions
    • The degree of Code coverage is known, and should meet or exceed the standard required
    • The unit test cases should have been executed and the increment proven to work as expected
    • Peer reviews ought to be done. (Note: If pair programming is used, a separate peer review session might not be required)
  • Test Complete
    • Functional testing done. This includes both automated testing and manual exploratory testing
    • test report should have been generated
    • All outstanding defects (or incidents such as build issues) should be elicited and resolved, or accepted by the team as not being contra-indicative to release
    • Regression testing has been completed, and the functionality provided in previous iterations has been shown to still work
  • Performance, security, and user acceptance testing must have been done, and the product should be shown to work on all required platforms
  • Release authorization must be obtained