Geek Smithology

April 18, 2006

Continous Integration: A Pit and a Pendulum

Filed under: Craft of Dev by Nathan @ 6:54 am

Discomfort sets in slowly. Inexorably, what began as mere annoyance blossoms into full blown torture. As minutes tick by, that splash of crimson in the corner gives rise to feeling of uneasiness, tension; creeping dread. Am I in some phantasmagorical horror prison under the relentless march of some medieval inquisitor? No, I’m on a project when the build is broken, the team is looking at it, and the ETA is a Carmack-esqe when it’s done.

The build machine in a continuous integration environment can be seen as the heartbeat of the project, but it’s also a mood ring and Neal Peart wrapped up in one tiny little package. When the build is green, all is well; when it’s red, all bets are off.

Most breaks are nothing more than a forgotten file; they are fixed and forgotten almost instantaneously. But disquiet sets in when the build stays broken and anguished cries of but it works on my machine! hang heavy in the air (like a dulling wine). Developers accustomed to four or six commits a day are dragged kicking and screaming out of the zone as all hands reluctantly find their place on the deck.

We come out scathed and unscathed in our own ways, but the moral our inner Aesop craves is thus: continuous integration is about creating an atmosphere of peace and love and the accompanying desire to maintain equilibrium. Developers start to get uncomfortable if more than a few hours go by without making their mark in the world and see keeping that little icon green as something meaningful: pleasure via pain prevention.

How singular is the thing called pleasure, and how curiously related to pain, which might be thought to be the opposite of it; for they never come to a man together, and yet he who pursues either of them is generally compelled to take the other.
– Socrates

A journey of a thousand miles begins with a single step; a software project consisting of a thousand stories begins with a single commit.

Leave a Reply

Your email address will not be published. Required fields are marked *


Powered by WordPress