While reading Sam Newman’s book about „Building Microservices“, I cam across Jez Humble’s three questions he asks people to test if they really understand what CI is about.
1. Do you check in to mainline once per day?
If you don’t check your code together with everyone else’s changes frequently, future integration will be harder. Even if you are using short-lived branches, integrate frequently into a single mainline branch.
2. Do you have a suite of tests to validate your changes?
Without tests, we don’t know if we have broken the system. CI means also that we have verifications that our code behaves as expected.
3. When the build is broken, is it the #1 priority of the team to x it?
You need to stop all check-ins that aren’t involved in fixing the build. If you don’t stop, the time it takes to fix the build will increase drastically.
Image: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication