Home › Stories
Poul-Henning Kamp, FreeBSD · 1999

Any Colour Will Do

A small change letting FreeBSD's sleep command wait fractions of a second drew a thread that, by Poul-Henning Kamp's count, ran a couple of weeks. His reply named the pattern.

◷ 2 min read

On a Unix computer, sleep 5 tells the machine to wait five seconds. In 1999 FreeBSD’s version didn’t handle fractions. Someone in the project proposed that it should, so that a script could wait, say, half a second.

By Poul-Henning Kamp’s account it was a sensible idea. FreeBSD would match what OpenBSD and NetBSD already did, and nothing anyone had ever written would break. Then the mailing list got hold of it. “So many objections, proposals and changes were raised,” Kamp wrote, “that one would think the change would have plugged all the holes in swiss cheese or changed the taste of Coca Cola.” The thread ran “many days,” he guessed, probably “a couple of weeks.” He couldn’t be bothered to check.

On October 1, 1999, the change went into FreeBSD’s source tree anyway. The commit message called it “a conservative change.” Weird input still behaved as before: sleep abcd still slept for zero seconds.

Kamp, who by his own description had become “sort of a de facto spiritual leader” of the project, said later that the thread made him angrier than almost anything had, and that it took him days to calm down enough to write. The day after the commit, he sent an email to the project’s developers. The subject line: “A bike shed (any colour will do) on greener grass…”

He didn’t argue about sleep at all. He went back to a book of management satire, C. Northcote Parkinson’s Parkinson’s Law, and its committee that can approve an atomic power plant but tangles itself up over a bike shed. A plant is so vast and complicated, Kamp wrote, that people “cannot grasp it, and rather than try, they fall back on the assumption that somebody else checked all the details.” A bike shed is different. “Anyone can build one of those over a weekend, and still have time to watch the game on TV.” So somebody will always take the chance to show “that he is paying attention, that he is here.” In Denmark, he added, they call it “setting your fingerprint.”

The part that stung came near the end. The people firing at the sleep change had been in the project for years and had never bothered to make it themselves. Kamp couldn’t explain why a junior developer doing it enraged them. His wish was simpler: “let people build a bike shed every so often,” and not care what colour they paint it. And he apologised to the people lurking on the list, “scared away from participating by the gargoyles.”

By his later account, “bikeshed” first became a term of art in FreeBSD, a yellow card held up in a thread. Two Subversion developers put the email on a website of its own, and from there, he wrote, it seemed to spread through all of computing.

FreeBSD’s official FAQ still carries the question: why should I care what color the bikeshed is? The first line of the answer: “The really, really short answer is that you should not.”

What this story shows

Law of Triviality (Bikeshedding)The sleep(1) change was small and easy for anyone to judge, so everyone weighed in. Kamp explained the thread with Parkinson's reactor and bike shed, and gave programmers the word.Psychological SafetyKamp's sharpest worry was not the lost time. It was the newer contributors who watched the pile-on and decided not to propose anything at all.

Sources

  1. Poul-Henning Kamp, "A bike shed (any colour will do) on greener grass...", email to FreeBSD committers and hackers, October 2, 1999 (with his later account, The Bikeshed email, on his own site)
  2. FreeBSD source tree, commit ac14c31, "Let sleep(1) handle fractions of a second (up to nanosecond)", October 1, 1999
  3. FreeBSD Frequently Asked Questions, Why should I care what color the bikeshed is?
  4. C. Northcote Parkinson, Parkinson's Law and Other Studies in Administration, Houghton Mifflin, 1957, chapter 3, High Finance, or The Point of Vanishing Interest