Chapter 4. Build, Test, and Release Faster with Continuous Integration
The emphasis of this chapter will be the value of quick iteration: Quick over quality iteration, as per Boyd's law (you might recall the OODA principle mentioned in Chapter 1, What Is DevOps and Should You Care?).
By iteration, I am referring to a software development cycle, from the moment a piece of code is written, published (committed to version control), compiled (if needed), tested and finally deployed.
Continuous Integration (CI) defines the routines that should be adopted by developers plus the necessary tools to make this iteration as fast as possible.
Let us start with the human factor:
- Use version control (for example Git)
- Commit smaller changes, more often
- Test locally first
- Do peer code reviews
- Pause other team activity until an issue is resolved
Then add a bit of automation (a CI server):
- Monitor for version control changes (for example Git commits)
- Pull down changed code
- Compile and run tests
- On success...