Even great programmers are slow to learn the culture of open source

(written by lawrence krubner, however indented passages are often quotes). You can contact lawrence at: lawrence@krubner.com

David Heinemeier Hansson makes an interesting point about acclimating to the culture of open source:

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.