||This article includes a list of references, but its sources remain unclear because it has insufficient inline citations. (February 2012)|
Parkinson's law of triviality, also known as bikeshedding, bike-shed effect, or the bicycle-shed example, is C. Northcote Parkinson's 1957 argument that organizations give disproportionate weight to trivial issues. Parkinson observed and illustrated that a committee whose job is to approve plans for a nuclear power plant spent the majority of its time with pointless discussions on relatively trivial and unimportant but easy-to-grasp issues, such as what materials to use for the staff bike-shed, while neglecting the less-trivial proposed design of the nuclear power plant itself, which is far more important but also a far more difficult and complex task to criticize constructively.
The law has been applied to software development and other activities, and the term "bikeshedding" was coined as a metaphor to illuminate Parkinson's Law of Triviality and was popularized in the Berkeley Software Distribution community by Poul-Henning Kamp and has spread from there to the software industry at large.
The concept was first presented as a corollary of his broader "Parkinson's law" spoof of management. He dramatizes this "law of triviality" with the example of a committee's deliberations on an atomic reactor, contrasting it to deliberations on a bicycle shed. As he put it: "The time spent on any item of the agenda will be in inverse proportion to the sum [of money] involved." A reactor is used because it is so vastly expensive and complicated that an average person cannot understand it, so one assumes that those that work on it understand it. On the other hand, everyone can visualize a cheap, simple bicycle shed, so planning one can result in endless discussions because everyone involved wants to add a touch and show personal contribution.
Problems exist when you suggest building something new for your community, like a bike-shed, and then everybody argues about the details. This is a metaphor indicating that you need not argue about every little feature just because you know enough to do so. It's better to just build the bike-shed; a trivial matter like the color can easily be discussed and changed later. Some people have commented that the amount of noise generated by a change is inversely proportional to the complexity of the change.
Thus bikeshedding involves discussions about relatively unimportant issues which result in extensive debate. It may be the result of individuals who wish to contribute feeling that they do not have the knowledge or expertise to contribute on more significant issues. Bikeshedding can result in discussions that, whilst on-topic, nevertheless effectively drown out other discussions on more significant issues.
Although discussion can meander in any topic, the probability of meandering goes up as the technical difficulty of the topic goes down. After all, the greater the technical difficulty, the fewer participants can really follow what's going on. Those who can are likely to be the most experienced developers, who have already taken part in such discussions thousands of times before, and know what sort of behavior is likely to lead to a consensus everyone can live with.
Thus, consensus is hardest to achieve on technical problems that are simple to understand, and in "soft" topics such as organization, publicity, funding, etc. People can participate in those arguments indefinitely, because there are no qualifications necessary for doing so, no clear ways to decide if a decision was right or wrong, and because delay can be a successful tactic.
In the third chapter, "High Finance, or the Point of Vanishing Interest", Parkinson writes about a finance committee meeting with a three-item agenda: The first is the signing of a £10 million contract to build a reactor, the second a proposal to build a £350 bicycle shed for the clerical staff, and the third proposes £21 a year to supply refreshments for the Joint Welfare Committee.
There are several other principles, well known in specific problem domains, which express a similar sentiment.
Another, applied, example is the duck technique in corporate programming: a programmer expects their corporate office to insist on a change to something (anything at all) on every presentation to show that they're participating, so a programmer adds an element they expect corporate to remove on purpose. Quoted from Jeff Atwood's blog, Coding Horror:
This started as a piece of corporate lore at Interplay Entertainment. It was well known that producers (a game industry position roughly equivalent to project manager) had to make a change to everything that was done. The assumption was that subconsciously they felt that if they didn't, they weren't adding value.
The artist working on the queen animations for Battle Chess was aware of this tendency, and came up with an innovative solution. He did the animations for the queen the way that he felt would be best, with one addition: he gave the queen a pet duck. He animated this duck through all of the queen's animations, had it flapping around the corners. He also took great care to make sure that it never overlapped the "actual" animation.
Eventually, it came time for the producer to review the animation set for the queen. The producer sat down and watched all of the animations. When they were done, he turned to the artist and said, "That looks great. Just one thing: get rid of the duck."
The law has been misquoted as the "colour of the bike shed" effect, although in Parkinson's discussion the issue related to the construction of the bicycle shed, with no reference to its colour.