Skip to content

Instantly share code, notes, and snippets.

@marick
Last active June 22, 2022 21:08
Show Gist options
  • Save marick/3ec112bc38b2af267e15 to your computer and use it in GitHub Desktop.
Save marick/3ec112bc38b2af267e15 to your computer and use it in GitHub Desktop.
About Those Lava Lamps

Around 2006-2007, it was a bit of a fashion to hook lava lamps up to the build server. Normally, the green lava lamp would be on, but if the build failed, it would turn off and the red lava lamp would turn on.

By coincidence, I've actually met, about that time, (probably) the first person to hook up a lava lamp to a build server. It was Alberto Savoia, who'd founded a testing tools company (that did some very interesting things around generative testing that have basically never been noticed). Alberto had noticed that people did not react with any urgency when the build broke. They'd check in broken code and go off to something else, only reacting to the breakage they'd caused when some other programmer pulled the change and had problems.

So Alberto hooked up the build server to the lava lamps, which he put in the middle of the large U-shaped table configuration that the people worked at. (About the same number of programmers we have, maybe a little more.) This solved the problem, but Alberto noticed something additional and interesting.

It turns out that lava lamps take about 15-20 minutes to get warm enough for the wax bubbles to start floating upward. What was interesting was that it became a competition among programmers: as soon as the red lava lamp turned on, the person who'd broken the build really really wanted to fix it before the bubbles started rising.

This was another of my Aha! moments: Everyone knew broken builds should be fixed quickly. No one did it. Introduction of a completely irrelevant stimulus/challenge caused people to behave correctly. Reason could not counteract unreasonable natural inclination, but a different unreasonable natural inclination could.

Huh.

@pikooh
Copy link

pikooh commented Dec 21, 2015

@walter
Copy link

walter commented Dec 21, 2015

@lookfirst
Copy link

When I worked at Kink.com (NSFW!!!!), the person who broke the build got a giant dong put on their desk. That was pretty good motivation to not break things. Heh.

@DrMoish
Copy link

DrMoish commented Dec 21, 2015

Another use of Lava Lamps was as a random number generator. Lavarand was patented and available as a free web site from 1997 through 2001... see https://en.wikipedia.org/wiki/Lavarand

@AlbertoSavoia
Copy link

Hi Brian, thank you for bringing back the lava lamp story. It was one of several eXtreme Feedback devices I eXperimented with at Agitar to go along with eXtreme Programming. I wrote an article about at the time: Extreme Feedback for Software Development:

http://www.developertesting.com/archives/month200404/20040401-eXtremeFeedbackForSoftwareDevelopment.html

Of the extreme feedback devices I devised and experimented with, 3 seem to have caught on:

Lava lamps (now found in better software development shops the world around) – with the improvement of Red/Green lamps
Feedback monitors (basically LCDs with key status and stats)
Testing on the Toilets (catching people's attention while they are taking a bio break)

All 3 can be seen in action at Google today.

Nice blast from the past! Thank you.

Alberto

@x-ji
Copy link

x-ji commented Jan 4, 2016

Well I don't think in the end it was an "unreasonable inclination" that did the job after all, but still a well thought of, rational mechanism. Also, as long as it's what a human being wants to do, you can hardly put it down to a simple "reasonable" or "unreasonable" dichotomy. The reason might well be a bit hidden at first sight but it's always there, and there's always an explanation. Still, nice anecdote.

@vjandrea
Copy link

@jalawrence: Anyone recall the (I think) SGI story about the first nerf rocket battery to attack the person who broke the build?

Who broke the build? (blog.papercut.com)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment