Chapter 5. Practice 2: Continuous Integration

image with no caption

Integration isn’t easy. It can be painful, aggravating, and even depressing. It’s the hill you have to climb at the end of the race to reach the finish line. Why would you want to do it continuously? Isn’t one thrashing enough?

Steve Jewett

Integration is where the whole development effort comes together. Individual components, databases, user interfaces, and system resources are all tied together and tested via the underlying architecture. Integration involves verifying that components communicate properly via public interfaces, ensuring that data formats and message contents are compatible and complete, and making sure that timing and resource constraints are obeyed. Traditional development processes treat integration as a separate phase occurring after all the pieces have been implemented, and it is typically a laborious, time-consuming process involving a lot of debugging and rework. Continuous integration, or CI, turns the traditional integration phase into an ongoing activity that occurs during the implementation of the system.

CI is not simply an integration phase spread out over the entire development cycle—at least, not the traditional integration phase you’re probably used to. Continuous integration is the process of integrating small changes on a continual basis in order to eliminate a separate integration phase prior to product ...

Get The Art of Lean Software Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.