Enlightening build
[ vmassol ] 10:34, Monday, 9 February 2004

Imagine you have a continuous build system in place and that it builds automatically your projects every few hours. When the team is large it can be quite challenging to coach all team members in being careful about the build and that before committing code, people need to run the build locally on their machine first. There are also other problems, like the build works locally but not on the continuous build machine.

Anyway, I've found that there are different kinds of projects. Some where the build is taken very seriously and a build-aware mentality quickly spreads and others where people do see the value of the build but have more difficulties taking it very seriously (leading to lots of build failures).

One idea that I've had is to use a physical artifact to represent a build success or a build failure. People like to see and touch things. Doing some research I've found the Ambient Orb which seems close enough to what I have in mind:

ambient-orb-alt1.jpg

(Image stolen from ThinkGeek)

The idea is that the orb will turn more and more red depending on the number of projects that failed to build during the past cycle.

I have yet to buy one and try it but I like the idea. Has anyone done this already? Can it be done easily with the Ambient Orb? Are there devices other than the Ambient Orb on the market (for example, I don't need the wireless radio network connection at all especially as I live in France)?

Update: This blog entry has been reposted on TSS.


Comments

Howsabout a lavalamp? Might only work for one project, but it'd give you a sense of how long the build has been broken. If the light is on, but the lava is cold, it's a recent break.

If the lava is slightly bubbling, it's been broken for a while.

If you have a full boil, then you're up the creek.

You and your cow-orkers could talk about how "the build is in the lava".

--bob mcwhirter, February 9, 2004 05:20 PM

It wasn't so automated, but our QA team used to use a mock traffic light mounted to the wall in clear view. A green light meant good, a yellow light indicated general instability, and a red light was a full stop.

It worked pretty well, until a) the yellow light burned out and we couldn't find a replacement bulb, and b) (more importantly, probably) we realized that customers, etc. were occasionally walking through the area, and we didn't want to worry them unecessarily, i.e., they never got a build until it was green, and things went smoother for everyone if they got all their impressions off of those builds.

So, maybe instead of a high visibility object, we could use hidden electrodes or something? :)

--anon, February 9, 2004 06:09 PM

Actually I would find a binary signal (that is: totally red if something fails, green if everythign builds correctly) would be better. If the system doesn't build, then it is everyone's problem. But this is only my opinion :)

--Davide Inglima - limaCAT, February 10, 2004 05:54 PM

Hi Bob,

Good idea with the lava lamp. Do you know any model which can easily be controlled with a computer? I tried to google for it yesteday but could not find information about this.

Thanks

--Vincent Massol, February 10, 2004 05:56 PM

Hi Davide,

I agree except that we have about 100 separate maven subprojects (70 developers working on them - 6 teams) and I believe it's a bit too much to be binary... :-)

--Vincent Massol, February 10, 2004 05:59 PM

It seems Mike Clark has implemented this idea using a Lava Lamp: http://pragmaticprogrammer.com/pa/pa.html

Very cool!

--VincentMassol, November 17, 2004 02:30 PM
Post a comment









Remember personal info?