Rookies in the bike shed

By David Heinemeier Hansson on March 27, 2012

Getting dragged into bike-shed discussions is an occupational hazard of any open-source contributor. I've been involved in my fair share since starting Rails almost a decade ago. There were more in the early days, like the epic debates over pluralization, but they're still there.

That's no coincidence. The draw of the bike shed is like a natural law. You can no more escape the bike shed in open source than a feather can escape gravity.

All open-source contributors start out as rookies. They may well be seasoned and reasoned developers in their own right, and the most insidious bike shedders usually are, but they haven't developed the critical appreciation for the energy flows of open source.

That's nothing to be ashamed of. Finding your feet as a contributor in the open source world can take some time. There are lots of customs and a culture that might well seem foreign at first. Or worse, it might seem like you understand them even when you don't.

The proper way to lift yourself out of the rookie state is to watch and learn, and then to find somewhere to contribute while doing your best to cause no harm to the ecology already busy at work. Hell, in rare instances you might well have come across a matter of such significance that it's worth it to burst out of your rookie track and head into the fight.

But by definition, the color of the bike shed is not worth fighting for. And the play fighting is an inherently selfish act that sucks valuable oxygen out of the room of contribution. When the actual contributors get dragged into a discussion of little merit, they're left with less energy and time to deal with productive endeavors.

And that's really the crux of this. It's not that most bike shed discussions have zero value, it's that they don't have value proportional to the energy expended debating them. They're energy inefficient. Even if you "win" a bike shed discussion, you still lost because the benefit derived will never repay the expense squandered to get it.

The ability to spot this is one of the most valuable skills a software developer can possess. There are endless features we could build and debates in which we could engage, but only a small subset are worth the effort.

The best developers aren't the ones who can write the most code in the shortest amount of time or out-reason anyone on the internets. They are the ones that only write the code that's most valuable to execute and only enter the debates of high substance.

So next time your spidey sense tells you the discussion is going bike shed, you might pause to consider whether it's worth your and others' energy.