The one thing about Open Source that always seems unsustainable to me is that the contributors don’t get any significant share of the value they create.
For instance, Linux and MySQL are open-source projects that bring in millions of dollars in profits for multiple companies (that actually sell/consult for these products). And yet, little money trickles down to the code contributors – certainly not a significant percentage of total profits made by their ecosystems. The Open Source argument is that the appropriate incentive for code contributors is that they get to improve the software for their own use and the value created for other users is merely a “side effect”. But when that “side effect” runs into millions of dollars, we must ask – can we compensate contributors more fairly?
And contributors are even more important to big open source projects today. Gone are the days when a part-time developer could add a feature he needed by mucking around with code. As businesses have come to rely on open source, the expectations of the products are much higher and the feature asks are more complex. Such products now need a consortium of contributors who have spent considerable time building expertise in the product, and are available to address the complex requirements (and timely patches, and other deliverables). In other words, big open source projects now need full-time developers. And full-time developers need to be paid.
In short, contributors need to be paid both because the project needs their energies full-time (i.e., the project is their day job) and because they should receive a fair share of the value they create. How might we formalize a set of rules under which the next generation of open source projects might accrue value to contributors more fairly? I believe the answer consists of three aspects – allowing open source software to be sold for a price, having rules to fairly distribute the proceeds among full-time contributors, and allowing contributors to protect their contributions by discouraging forking of code.
The simplest solution to compensate contributors is to sell the open source software for a price, and have the contributors share in the proceeds. One way to do this is to have all contributors form a partnership or a consortium to own the project, and then sell the software for a fee to whoever needs it (either consulting companies or directly to customers). The membership of the consortium could change over time (as old contributors retire and new contributors join); the project would continue since the consortium would “own” the project. In effect, RedHat does exactly that, but I’m proposing that this type of partnership be formalized (along with rules deciding how profits get distributed).
One unfortunate side-effect of allowing open source software to be sold for a price is that that forking of code needs to be discouraged. You can’t have anybody picking up a code-base built over the years, and offer it for free (when the contributors want to charge for it). But on the other hand, open source has been successful precisely because of unbridled sharing and collaboration. I am unclear as to how to solve this problem. A few open source projects “solve” this problem by having some piece of the product as closed source (RedHat, Android). I think there needs to be a definition of “fair code reuse” similar to “fair use” mechanisms in copyright law, and it needs to be formalized as a license.
In other words, what we need is a legal entity that represents the open source project and its contributors, and mechanisms to compensate contributors and protect their hard work. I am convinced that an appropriate legal framework would spur even more innovation in software development.
But would we end up with something that looked indistinguishable from closed source projects? Not really. One thing I have always admired about Open Source projects is that it fosters this dynamic community of contributors. Because the code is openly viewable, it enables a “long tail” of part-time contributors to participate, and enables a new generation of leaders to emerge (as some of these part-time contributors transition to being paid full-time contributors). This is something worth keeping; I think this is something that will live on – even closed-source software projects will end up being more “open” in that they will be viewable to a large set of people, many of whom will be able to provide feedback and make minor changes and emerge into the next set of leaders. There really is no better way to hire future team members for any software project.
So hopefully, we’ll end up somewhere in the middle. But in this new reality, open source won’t be free. And it won’t be that open anymore.