Friday, 17 August 2012

Jinkies - Build Noises For Remote CI Servers

If you already know why build noises are a great idea and just want the software click here, otherwise...

Feedback is one of the original XP values. The more timely and accurate the feedback the better.  One symptom of a successful Agile project is that there are numerous and even redundant quality assurance systems in place that provide feedback when something goes wrong. Automated tests and CI servers are examples, however when it comes to CI servers many projects fall a little short. Often there's no system in place for monitoring builds. Some teams use a flat screen TV to display the jobs, other teams send notifications via email. In fact there are a whole host of other options from instant messaging to browser and IDE plugins, but by far the most effective system of alerting often goes overlooked.

NOISE!!!

We're wired for it. Think about the last time you needed to give some an urgent warning - did you write them a note that said "Look Out", or did you shout it?

Far better than a screen that you need to remember to check, or relying on people to

a. Use an email client as opposed to webmail
b. Respond to build related emails immediately, instead of deferring action as is the norm with other emails.

Noise has another advantage - it can carry with it a free layer of information we process without even thinking. Ever been on a plane when a baby starts crying? Not only is it impossible to ignore, but you are in no doubt that that baby is extremely upset.

But wait, there's more. Ivan Pavlov discovered that we can be conditioned to respond to noise. If you've ever worked in a team that dragged their heals when it was time for the daily stand up, try playing a build noise. Using negative effects for breaks and positive ones for fixes can also be motivational.

Finally choosing appropriate samples is fun. Imagine coming into the office and hearing this whenever your build breaks, or a shortened version of this when it's stand up time. I'm all for having more fun at work.

OK - so that's my argument for build noises, but the implementation can be tricky. CI servers are increasingly likely to be headless Linux VMs hosted in a data centre or the cloud. The latest version of the Jenkins Sound Plugin allows you to pipe sounds to a remote machine via your operating system or to play them through your browser, but if you'd like a little more control, have lots of build jobs (possibly across different CI servers) or would prefer the notification system to be a background process  rather than a web page then give Jinkies a try - it's a light hearted bit of software for playing sounds when a build on a remote build job breaks or gets fixed.

PS. There is an argument against build noises - they can interrupt and distract non project related staff. This may be a genuine concern, but can also be a symptom of a greater problem. Development teams can be constrained by administrative or managerial staff who wield power, but don't actually contribute value (like the douche from health and safety who said we couldn't use two keyboards when we pair programmed). It's wrong, but comical build noises is probably not the right battleground for that particular fight.

No comments:

Post a Comment