Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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.

@vjandrea
Copy link

vjandrea commented May 20, 2019

@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