Are you really doing Continuous Integration?

Here are a few questions that’ll help determine if a team is really doing Continuous Integration or CI.

  1. Can anyone on the team check out the latest code and build it in 1 easy step?
  2. Do team members check in product code and test code multiple times a day?
  3. Are code changes checked in to 1 main line branch?
  4. Are code changes built as soon as they are checked in?
  5. Do unit tests run with every build?
  6. Are changes deployed to a test environment with every successful build?
  7. Do automated integration tests run in the test environment with ever successful deploy?
  8. If there are any failures in the builds (compile errors, unit test failures, deployment issues or integration test failures), does fixing the build issue become the top most priority?
  9. If a major issue is discovered when deploying to production, can you quickly roll back to the previous version?
  10. If a defect is found in production, can you easily fix the defect on the version that is deployed to production and also merge the fix into the current main line branch?