Benji Weber on Twitter again with a pithy coin:

Teams with multiple active branches in source control are practicing Continuous Isolation not Continuous Integration.

This isn’t a modern thought. Extreme Programming (XP) set it out that way. Martin Fowler and Matt Foemel gave it a paper too. Just like that - the intention was one branch for the whole team, and a bunch of choreography to land a stream of small changes into it continuously.

Yup it was in 1999/2000 that the intents of the ‘Continuous Integration’ were defined. From the XP methodology the intention was to be able to alert un-integratable code at the earliest possible moment. It was a practice that could be performed by humans, as originally described. It didn’t require servers/daemons to guard the same result, but as the industry dialed things up in terms of team size for one VCS repo, that certainly helped.

Martin writes about this problem in ContinuousIntegrationCertification. Haters should do read that, the original CI paper, and its update too.

Fake good news

Some teams are hell-bent on preserving branching models where there are multi active concurrently.

If they are then they should configure their Continuous Integration servers to track all those active branches, and include the additional build step of “what if this commit were merged back to master” (a feature introduced by Snap-CI in 2013 - too bad to hear that Snap’s service is closing down). I am confident that would lead to a train wreck of bad news. If the team is still adamant that multiple long running branches are best, then they’ll be turning off any build step that would highlight the branches brokeness. That is right - they’ll have the CI server approve each commit in the most generous way it can.

Sometimes ThoughtWorks would revisit a client a year after completing a mission and find that someone had even commented out the unit test invocation step of the build. Sometimes that wasn’t green enough, so the unit tests would not longer be compiled in the build. That happens less and less these days I hope. So fake CI ‘good news’ is real I think, albeit increasingly subtle. It might rest solely on sins of omission nowadays, but it is still there if you look closely enough.

Sadly people who advocate for fake good news, often get promoted rather than sidelined so we have to be vigilant.


February 14th, 2017