Our modern society runs on software. Most of this software is, or heavily depends on, open source code maintained by a community of often unpaid volunteers. Indeed, Free and Open Source Software (FOSS) constitutes the digital infrastructure of our society.3
While this openness is positive, it comes with a price. FOSS, as other types of public goods, suffers from a participation inequality problem: everybody uses FOSS, but few contribute back and hugely critical projects end up being maintained by very few committed individuals.
The long-term sustainability of FOSS is a complex and multidimensional problem (technical, economical, social, political, and so forth). We believe more transparency in how projects are governed would be a significant improvement to all such dimensions. And one that is easy to implement.
The lack of key governance information deters potential contributors, as they may feel the onboarding process would be too time consuming8,10 or may fear there are hidden power relations in the project that could limit their impact. The same goes for end users, who may decide among similar projects based on how healthy and transparent the community behind them is.
To address this, FOSS projects should be more transparent and explicitly publish how they are governed in an easy-to-find and easy-to-read filea acting as the single source-of-truth for the project. This file should, at least, cover aspects such as the project's contribution workflow, decision process to accept new contributions or prioritize features, timeline for making these decisions, or steps to climb the ladder in the project internal organization.
We are not there yet, as our analysis data shows. But we hope the discussion and recommendations in this Viewpoint will help turn the tide and motivate projects to move toward a more transparent governance so we can then discuss what the best governance models are, depending on the project characteristics.
FOSS data, especially regarding projects hosted on GitHub, the most popular social coding platform, has been analyzed from many perspectives to learn how FOSS communities collaborate. But, so far, none of the works have focused on evaluating their transparency and governance dimension.
While there is no ideal governance model, we believe there are a few general recommendations to consider when deciding it.
Therefore, to evaluate the transparency dimension, we conducted three preliminary different analyses. Each one narrows down the number of analyzed projects but widens the depth of the analysis. We first queried the more than 200 million repositories in GitHub for any mention of the word "governance" in their readme file. Only 21,114 (a tiny 0,01%) were a hit. Next, we focused on four specific software development ecosystems to run our analysis on more homogeneous sets of projects, namely: NPM packages, R packages, Laravel packages, and WordPress plug-ins (see the accompanying table). We gathered all repositories from 2017 to now and searched for governance information. To broaden the search, we looked for specific governance files but also looked into contributing and code of conduct files that could include governance aspects. We collected information from a total of 13,937 repositories. None of them included a governance.md file. And the presence of contributing and code of conduct files was also low. Both analyses were fully automated. As such, we could have missed governance information scattered in other project sources or matched projects that in fact were using the term with a different semantics or where governance information was minimal. Therefore, we performed a final, more in-depth, analysis of the top 25 starred GitHub software projects. We looked for key governance information (recall previous section) in contributing guidelines, code of conduct, readme and project metadata (exploring and following any links that may be provided).
Table. Presence of specific files in GitHub repositories for NPM package, R package, and Word-Press plugin ecosystems since 2017.
The accompanying figure shows the results:b 60% of the analyzed projects did not include any governance information while 32% partially discussed governance but only covering two or three aspects, not all of them. In particular, the most ignored dimension is the expected timespan to accept/review a contribution. Only 8% of the projects (React and Kubernetes) mentioned all governance dimensions. And only one project (Node) included a governance.md file. Finding the evidence for the rest forced us to read and navigate a number of locations and project resources. Unfortunately, the current situation does not show a significant improvement regarding past analysis.c
Figure. Governance evidence in the top 25 software GitHub projects.
Based on the results described here, we all (project owners, contributors, researchers, users, and so forth) can clearly do better. This section discusses a potential roadmap to improve transparency in FOSS by focusing on the following items:
All these initiatives will lead to a more transparent open source ecosystem, together with other existing transparency initiatives such as the code of conduct and the contributing guidelines files, also starting to timidly appear in projects as seen before. And it would open the door to start discussing the disclosure of further managerial aspects of the project (such as financial aspects and conflicts of interest of company contributors) that are mostly opaque nowadays.
If we agree on the importance of defining an explicit governance model for FOSS projects, the immediate follow-up question is whether there is an ideal governance model for FOSS.
We do not think so. The idiosyncrasy of FOSS projects is so varied7 there is no one-size-fits-all model. Even so-called "benevolent dictator for life" models are tolerated and seem to work well for some projects. It is also easy to find examples of meritocratic systems (where community members are promoted to some kind of steering committee based on their mostly technical contributions). Instead, large projects truly committed to an open participatory, or at least representative, democratic model are scarce.e
We have thousands of years of experience in testing many different models throughout our common history.
While there is no ideal governance model, we believe there are a few general recommendations to consider when deciding it. To begin with, dictatorships should be the exception and restricted to the beginning of the project. Otherwise, there is a high risk of the project being forked and the community splitting.
Instead, we suggest evolving toward one of the many more collective and participatory decision models.9 A notable example has been Python. After Guido van Rossum stepped down, Python has moved to a steering council model. These decision models include democratic ones, especially when you keep in mind there are hundreds of different democratic models4 to choose from. Indeed, we have observed that some projects react negatively to the concept of becoming more democratic as they have a narrow perspective which assumes that being democratic means a specific participatory model where everybody can vote, and all votes have the same value. But this is by no means a necessity: Instead, one could, for example, give to each person a number of votes depending on how valuable their contributions have been.
We also suggest ensuring all types of profiles—not only technical ones—are included in the governance model. They are all important in their own way2 and should have a saying. Again, this does not mean a plain end user should have an opinion on architectural decisions but it does mean the model should guarantee their participation on the aspects of the project relevant to them and ensure they are heard. Having a voice increases perceived fairness.6
Finally, we would also recommend considering external factors in your decision. As an example, if your project is funded by external sources, you should think whether they have the right to influence the project. Similarly, if you aspire to join a certain foundation or attract certain types of contributors, the openness of your model could be a factor to entice them.
One way or the other, as a society, we have thousands of years of experience in testing many different models throughout our common history. While these past experiences are not directly applicable to the FOSS world, they are for sure valid inputs that can teach us how communities typically evolve and what risks are to be foreseen. As FOSS has had a much shorter history so far, let's learn from them to ensure healthier communities and the long-term sustainability of FOSS projects.
1. Cánovas Izquierdo, J.L. and Cabot, J. Enabling the definition and enforcement of governance rules in open source systems. ICSE 2 (2015), 505–514.
2. Cánovas Izquierdo, J.L. and Cabot, J. On the analysis of non-coding roles in open source development. Empirical Software Engineering 27, 1 (2022), 18.
3. Eghbal, N. Roads and Bridges. Ford Foundation. 2016
4. Gagnon, J.-P. 2,234 descriptions of democracy: An update to democracy's ontological pluralism. Democratic Theory (2018).
5. Jansen, S. A focus area maturity model for software ecosystem governance. Information and Software Technology 118 (2020).
6. Lind, E.A. et al. Voice, control, and procedural justice: Instrumental and noninstrumental concerns in fairness judgments. Journal of Personality and Social Psychology 59, 5 (1990), 952–959.
7. Open Source Archetypes: A Framework for purposeful open source. Mozilla Foundation. 2019
8. Sholler, D. et al. Ten simple rules for helping newcomers become contributors to open projects. PLoS Computational Biology 15, 9 (2019).
9. Stanford Encyclopedia of Philosophy. Social choice theory. (Dec. 18, 2013); https://plato.stanford.edu/entries/social-choice/
10. Steinmacher, I. et al. Let me in: Guidelines for the successful onboarding of newcomers to open source projects. IEEE Software 36, 4 (2019), 41–49.
a. We and others call it governance.md but the community should agree on a concrete name.
b. Analysis done on May 13, 2022; results available at http://hdl.handle.net/20.500.12004/1/J/CACM/115
d. See https://github.com/github/MVG
e. The Debian constitution would an example of a project close to being democratic.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2023 ACM, Inc.
No entries found