Skip to content

Instantly share code, notes, and snippets.

@marick
Last active July 23, 2025 18:08
Show Gist options
  • Select an option

  • Save marick/3ec112bc38b2af267e15 to your computer and use it in GitHub Desktop.

Select an option

Save marick/3ec112bc38b2af267e15 to your computer and use it in GitHub Desktop.

Revisions

  1. marick revised this gist Dec 12, 2015. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions about_those_lava_lamps.md
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,6 @@
    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).
  2. marick created this gist Dec 12, 2015.
    24 changes: 24 additions & 0 deletions about_those_lava_lamps.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    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.