Chapter Four · Part 2: The Toolchain
Continuous Integration
In Chapter 3 a team learned to work on the same code without colliding. But all that separate work has to come back together eventually — and that reunion used to be the most dreaded moment in software. This chapter is about combining changes early and often, and letting a machine check each one the moment it lands.
When Maya finishes her "favorites" feature on a branch, her work has to merge back into the shared code that everyone else is building on. Multiply that by a whole team, each off on their own branch, and you get a pile of separate changes that all need to fit together. Combining them is called integration — and the longer a team waits to do it, the more painful it gets.
Continuous integration is the answer: merge each small change quickly, and have a machine build the app and run its tests every single time, so a problem is caught minutes after it's created instead of weeks later. These three topics build that idea up — first what "integration" even means, then continuous integration itself, then the automated tests that make the whole thing trustworthy.