The phrase continuous integration (CI) came out of the Extreme Programming process and was one of its original guidelines. Essentially, developers integrate their code into the code repository at least once a day (and preferably more often). Without continuous integration, the odds of one developer’s changes conflicting with another developer’s changes are very high. When long periods of time go by without integration, the problems that surface can be huge and costly to track down and fix.
You don’t have to do Extreme Programming or DevOps to benefit from continuous integration. A developer starts by checking their code out of the depository, makes the changes needed, tests and, fi the code passes all tests, checks in the changed code and tests again to ensure that other programmers’ changes aren’t in conflict. Because everyone is starting from the freshest code available and checks their code in frequently, bugs are easier to track down and it’s easier to revert back to known good code. Continuous integration offers these benefits:
- It reduces the risk of project derailment.
- It helps prevent integration problems cropping up at release when everyone tries to make incompatible versions work together.
- Developers communicate better.
- Changes are always made to the freshest code base rather than obsolete code.
- Problems and bugs are found faster because the size of the changed code is smaller.
With continuous integration, the code that’s checked into the repository is always ready to be deployed to end users, leading to continuous deployment.