Open source: inalienable right or company prerogative?

A daunting question that has preoccupied the range of open source-based commercial companies

How much code should be contributed for an open source project? There's no right or wrong answer, but anyone working with open source code has to address the question eventually. It's a daunting question that has preoccupied the range of open source-based commercial companies since the very beginning of open source.

Purists say "everything all the time" should be contributed, the logic being that no software is an island. These guys approach it as a basic right for everyone to see the source code, and they consider copyrights to be arcane feudal relics.

The fact of the matter is that, more often than not, someone is paying to have code written, and "he or she who pays the freight gets to pick the destination." Open source is not in fact the exclusive province of hobbyists who have nothing else to do or developers who only do it outside of work hours. On our company website, for example, we've seen that the web traffic drops on Saturdays, Sundays and holidays by a factor of 3-4x. Open source is driven only by hobbyists and weekend warriors? I don't think so.

We can't forget that nearly everyone who writes into open source is writing for a specific reason. They work for companies that need certain enhancements, bug fixes, whatever it is that's most pressing for them at that particular moment. Most code is created in a constrained commercial or intellectual context - by a company, a university, or some other organizational entity. Then, since the code has organizational lineage, that organization has to decide, "Should we contribute it?" Keeping some kind of hold on their code might bring them economic gains that are hard to just walk away from.

So it should come as no surprise that commercial considerations are a key motivation of the open source ecosystem. Few people are doing this for free. The question is how do we judge the value of the software work product?

There's no clear-cut cardinal rule about how much code to contribute or how valuable it is. When someone has written some great software, the tradeoff to me seems to be: Does contributing it create more opportunity than keeping it closed? And for whom?

Making your code open source means you're throwing it out to the masses. But if you're not sure about it, keep it under a controlled environment. In case of doubt, I say you keep it proprietary because it allows software to get better and mature a little. It's a process of maturation, like a fine wine, where you have to ferment it long enough to get a good flavor that can be enjoyed by the most people.

You've heard my opinion: If it's clearly open source core, go put it out there. If it's not, you keep it proprietary, ferment it a little, have customers using it, and improve it a bit before you release it.

What do you think? Should all code become part of the open source core or not? And how soon?

Join the Network World communities on Facebook and LinkedIn to comment on topics that are top of mind.

Copyright © 2010 IDG Communications, Inc.