A definition of Sustainable Free and Open Source Communities
What is a sustainable open source community?
If we are to re-align the incentives, we have to start from the top, and that means definitions. When I say “Sustainable Open Source Community”, I mean the following:
A unified body of individuals, scattered throughout a larger society, who work in support of the creation, evolution, use, and extension of free and open source software; while ensuring its longevity through meeting the needs of the present without compromising the ability of the community of the future to meet its own needs.
This definition comes from a combination of my own brain, the Merriam-Webster dictionary definition of community, and the broader understanding of sustainable economic development.
When I say “free and open source software”, I mean it in the terms defined by the Free Software Foundation and the Open Source Initiative’s Open Source Definition. While all Free Software is Open Source software, the inverse is not true. I use Open Source as the short form because it is the super-set of software communities that potentially fit my definition.
My definition precludes “user” communities from being sustainable. An example here is the “Excel” community - while I’m sure one exists, it’s not a community in the sense that I mean it. The community itself isn’t involved in the creation and evolution of the software. At best, they can contribute to its extension. If Microsoft stops producing Excel, what can the community do? They have no mechanism to ensure its longevity. The Excel community is sustainable only so long as it is profitable to Microsoft. It’s a sustainable software business, but not a sustainable community.
This points to the most unique property of a sustainable open source community: longevity. It must be able to produce the software for as long as it is of benefit to the community. As long as we ignore the cost of resources required to run the hardware, the software itself is an infinite resource. We don’t have the same struggle that we would have with, say, sustainable water usage. The software can continue to evolve and be used as long as it is needed.
Participants in a sustainable open source community gain many benefits. They obviously gain the software itself, as a user. They gain the ability to influence the direction of the software. They may gain reputation and visibility. Monetary benefits might flow to them, either through employment or donations. The list encompasses all the benefits of being in a community, plus the software itself.
Our goal is the creation of a community who can sustain the software, and provide benefits to its members, both now and in the future. To do that, the community must create a model where the majority of the value it creates flows to its benefit. Take the example of Chef being Open Core from above. Any value created on the proprietary side of the line is not available to the broader community. While the software itself is an infinite resource, we’ve created a non-infinite downstream pool - we reserved some benefit for a subset of the community, my paying customers. As a result, we created a user community - which, while it may be sustainable as a software business, is not sustainable as a community resource.