Anti-Social Build Orders
From: buildmaster@example.com
To: noah.shortcut@example.com
Cc: dev@example.com, mr.deadline@example.com
Subject: Anti Social Build Order
Anti Social Build Order
Rev: svn://svnserver/trunk@666
Log: Added files to project
Offense: Breaking the build
I wish I could claim this was an original idea. It isn’t. Automated builds have existed for at least as long as I’ve been programming, nag emails are a typical notification technique, and I’m attributing the reuse of the term ASBO to Matt Bowers. When I worked for Matt, he awarded a printed Anti Social Build Order in person at one of the development team’s daily stand up meetings. It was a joke but, from then on, the build pass rate did increase.
Name-and-shame tactics aren’t usually a good idea, even if, as in this case, they’re humourously cast. Team-work, collective code ownership, that’s what you want. Svn praise
, not svn blame
.
But anyone who breaks the build deserves an ASBO. It hinders other team members and shows disregard for best practice. In an age of atomic commits, powerful computers, and virtualisation, there can be no excuse. If you’re developing for multiple platforms, Windows and Linux, say, don’t assume that GCC and MSVC will agree on what clean code is, and never rely on other team members to correct your mistakes.
Even with ASBOs in place, even with a disciplined development team, a build may break. The important thing is to catch this event as soon as it happens; that’s what the build server is for, and as we can see Example.com has an exemplary build server. The ASBO email above was sent by an automated build process which performs an incremental build each time the repository updates. It identifies the revision when things went wrong and who committed that revision. As a result, Noah has cleaned up the build, but has he cleaned up his act? Certainly, when it came to breaking the build he used to be a serial offender. The introduction of ASBOs will help him reform.
Find out more about Noah Shortcut and Mr Deadline.