Setting up Rawls' Game
To begin, we have to decide what the primary goods are. What is the thing we want, whatsoever else we might want. We can take for granted Rawls list (freedom of expression, etc), since we are scoping things down to our sustainable open source community. In its place, a reasonable statement of the primary good we want is:
We want the software to exist, to solve our problem, to continue to improve, and to be available for our use.
Since our primary good is software, it has the unique property of being infinite in amount. If we want more of it, we can simply… create more of it. This definition ensures we will not trade away our ability to be sustainable.
Now we need to apply the equal liberty principle. What are the rights we won’t trade?
It turns out that the Four Freedoms set forth by Richard Stallman (RMS) are a perfect fit here. (I suspect not by accident - I put the odds that RMS didn’t read Rawls in 1983 at slim to none.) They are:
- The freedom to run the program as you wish, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help others (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
By adopting the four freedoms as our foundational rights, we guarantee our community’s basic liberty. Regardless of our position in the community, we will always have access to our primary good. Anything less than the four freedoms and we could easily be in a position where we are locked out of the community. Where our basic desire goes unfulfilled. By agreeing to never trade away our four freedoms, we fulfill the equal liberty principle.
This implies that, to be sustainable open source community:
- The software must be released under a Free and Open Source license.
This could be a ‘copyleft’ license like the GNU General Public License (GPL), or a ‘non-copyleft’ license such as the Apache License. The specific license doesn’t matter - only that it upholds the four freedoms.
This is, of course, not quite enough. We want more than just basic liberty in our lives - the “whatsoever else we might want” part of Rawls conception of the good. We want prestige, we want influence, we want money, we want friendship - the list is long. Simply having the software isn’t worth much if we can’t ensure a long life together as a community. It may give us liberty, but it won’t give us fraternity.
Once we start injecting the other things we want into our community, we are going to cause inequality. We need to ensure that those inequalities meet fair equality of opportunity and the difference principle. To do that, we need to have a better understanding of what the positions are we might occupy in our community. What are the different outcomes of the dice roll that determines our fate?
- Founders: the original authors of the software. They begin with 100% of the goods in our community. (If it wasn’t for their initial decision to create a community in the first place, there would be no community.)
- Developers: people with the technical ability and desire to improve the software; for their own benefit, the benefit of their employer, the desire to be active in the community or a combination of these.
- Contributors: those who engage in the work of making the software better. This does not necessarily mean writing code: they might file bug reports, compile release notes, write documentation, answer questions, etc.
- Champions: people who promote the benefits of the software and benefit by gaining visibility and authority.
- Non-Commercial Users: folks who use the software to solve their own problems. Distinct in that they are not solving the problem of how to generate wealth with the software.
- Commercial Users: users of the software who are solving problems related to generating wealth. Distinct in that they are not generating wealth from the software directly.
- Software Businesses: entities that sell a build of the software, and provide support for its use.
- As-A-Service Businesses: distinct from software businesses, in that they provide the software as a service, over a network.
- Managed Service Businesses: similar to As-A-Service Businesses, but provide the software as a service at a location of the consumer’s choice. Manage the lifecycle of the software on behalf of the consumer.
- Consulting Businesses: sell implementation and strategic consulting around the software.
- Venture Capitalists: people that provide funding of businesses in return for a stake in the business. Have the express desire that the business grows significantly in value.
This conception of community is an expansive one - it includes not only software developers, but anyone who has a stake in our community. How can we exclude the contributors who don’t write software? The venture capitalists who bring massive amounts of money to the table? All these are different aspects of the work involved in supporting the creation, evolution, use and extension of the software. We have to include them all, and as we discover new ones, include them as well. If we do not, we can’t be sure we’re evaluating our rules against a realistic field.