You think you're doing continuous integration, but you're not

You have a CI server, and you think that gives you continuous integration.

You think you're doing continuous integration, but you're not
Photo by Jakob Owens / Unsplash

You have a CI server, and you think that gives you continuous integration.

You've automated your build, and you think that gives you continuous integration.

You have tests. You run those tests locally. You make a PR, and they run automatically. And you think that gives you continuous integration.

But it doesn't.

Continuous integration is not running a server. Continuous integration is not running tests. Continuous integration is not keeping the build green.

Continuous integration is integrating.

Continuous integration is integrating continuously.


If you're working off branches, you're not doing continuous integration.

If you're making pull requests, you're not doing continuous integration.

If those branches last multiple days, and you have to wait hours to get your pull requests reviewed before you can merge them,

you're definitely not doing continuous integration.


Continuous integration is

everyone checks their work in to the main branch

every day.

Continuous integration is

everyone shares their work every day.

Continuous integration is

letting the commit history get messy.

Continuous integration is

checking in work before it's finished.

Continuous integration is

connecting the pieces

every day

as early as possible.


The Timeless Way of Building, a book that you have been influenced by if you've ever uttered the phrase "design patterns," opens by introducing the concept of the quality without a name. This is the quality that makes a building good to live in, fit for its purpose, suitable to the needs of its inhabitants.

There is a quality without a name to a team that practices continuous integration. There is a lightness, a flow. If the team has stand ups, they are alive with work.

The tragedy of a concept of CI reduced to "running a CI server" is that so many of you have never experienced this feeling, this lightness, this quality without a name. And you think that you have.

At best, you've experienced brief flashes, momentary fragments of freedom from the merge conflict, freedom from all the inevitable-feeling work of managing change. And you're chasing that feeling, with all your complex PR workflows.