
How Open Source's Contribution to the Commons Goes Beyond Licenses
Abstract: Democratic control is fundamental to cooperative values: it's the second item of the ICA/Rochdale Principles
Much of the discussion on open source's relevance to cooperatives has focused on open, permissive licenses that represent a 'digital commons' (possibly at risk of appropriation). But debate over licensing misses an essential and unique quality of open source: its democratic toolset which is much more sophisticated than resolutions and AGM. Understanding how successful open source tools are built by vast, distributed, often volunteer teams with few or no middle managers, could help unlock a more democratic and collaborative type of organisation. The opportunity for platform cooperatives – and any democratic group - in doing this, is to not only better engage members, users and workers, but to get the best of a community's insight and skills to improve the collective’s work.
"The ultimate question of human history, as we’ll see, is not our equal access to material resources (land, calories, means of production), much though these things are obviously important, but our equal capacity to contribute to discussions on how to live together.”
~David Graeber & David Wengrow, A New History of Humanity
Comparisons between cooperatives and open source software (also known as Free (libre) Open Source Software, FOSS or FLOSS) are frequent. Yochai Benkler was early
While it's recognised that the "Platform Cooperative movement has close affinities with FLOSS”, (Schneider, 2016)
This has led to some developers adopting more restrictive open licenses for their work. The Peer Production License was published in the Telekommunist Manifesto (Kleiner, Magyar, 2010)
In this way, the discussion around open source within the cooperative, solidarity and alternative/left economy spaces tends to gravitate into a debate over licenses: how they relate to fair compensation, or risk appropriation and exploitation by big business — and rarely goes further. This may be partly driven by the monopolistic nature of data online and the search for a community-owned alternative (Pazaitis, Kostakis, Bauwens 2017)
Open Source communities have developed well-established methodologies with a sophisticated toolset for bottom-up and decentralised collaboration. While many civic sectors question how to make their decision making and work processes more democratic, open source communities have long used a set of collaborative functions (issues, branches, merges, pull requests, forks and diffs) that underpin a powerful form of collaborative yet decentralised working.
Traditional corporate governance, common to many cooperatives, takes the form of resolutions submitted by members and shareholders, voted on annually at an AGM. The main innovation with cooperatives over corporations is each member has one vote; in corporations, like the Digital Autonomous Organisations (DAOs) in the blockchain world, the number of votes each co-owner has is proportional to the amount of shares or cryptographic tokens owned.
The ICA Group's model for good democratic organisational governance
Open source offers a different democratic approach. In place of resolutions are issues and pull requests (PRs); in place of voting is consensus, upheld by maintainers and forks, and in place of two board and management layers are normally just one layer of authority*: maintainers. All of these actions take place publicly and are attributed to someone, archived and managed through a tool called git
Attempts to integrate the principles of open source into organisational governance typically focus on the ethos and values, not the toolset. For example open source's transparency – where decisions and discussions are public and archived – has been championed by Transparency International and the now-closed Sunlight Foundation, as well as broader movements like Open Data
Neither Open Organisations or Enterprises describe specific tools or workflows to implement this increased transparency and participation, instead focusing on the general values needed for an open organisation. Some platform cooperatives have gone further. Stocksy, a photographer-owned photo licensing coop, shifted from annual member resolutions to ongoing open submission of resolutions by members in 2014, and continues to develop more sophisticated methods for members to discuss and vote on these online. Such effort is essential and not always easy: “the twin traps so many democratic firms fall into: either they have so much structure and bureaucratic procedure that members cannot actually use the power they formally have, or they have so little structure that there is no available means to make a difference." (ICA Group 2019)
This level of member participation has been made more widely available to any democratic entity, through the open source tool Loomio
Loomio stands out as having implemented in tools some of the principles of open source governance – ongoing proposals and discussion, with a transparent archive – and made them available to any kind of organisation. However, there are qualitative differences. Open source doesn't use voting, but a form of consensus, while the decision makers and workers aren't acting in separate spaces. A software repository acts like a virtual factory floor and discussion takes place there, along with contributions and management decisions. In open source it would be very unusual for a message to be handed down to developers from a virtual meeting space: "we've voted to scrap feature X, or add feature Y, please implement this".
Powering open source's 'factory floor', and at the heart of most modern open source is git, with a set of functions - commits, merges, pushes, pulls, etc - that shapes the rules and culture common to all active open source communities. Git is a decentralised, hash-based system developed by Linus Torvalds to help him maintain contributions to Linux. Unlike previous 'version control systems' which tracked changes to software over time through a pyramidal hierarchy, Git creates a unique hash (a unique identifier) for changes made locally on each contributor's computer, so that it can be compared with the original – or other contributions – which allows for the first time (Shirky, 2012) 'cooperation without coordination'
Looking at git's functions of merges, commits, PRs, branches and forks in more detail, I will reference CiviCRM
As shareholders and coop members can make resolutions for potential changes, anyone in the world is able to report an issue on an open source repository, which could be a bug, idea or feature request. At time of writing listed here
Anyone can then respond to an issue or propose a fix to a bug or create a new feature by making a pull request or PR (as in "please pull my contribution into the main repository"). At time of writing there are 82 open PRs for CiviCRM
Issues and PRs make an important difference to resolutions, for in separating diagnosis (issues) from cure (PRs), the community can apply the mindset and approach appropriate to quite different functions. It's arguably easier to spot problems than solve them, with this divide there's no wait to raise a problem until a good solution has been found. Flagging and discussing an issue ('this board is too male/white/old', 'this product isn't sustainable', etc) is not limited only to those who have the answer, while those offering big changes can point to the problems their proposal addresses. Issues can be discussed for as long as needed to gain consensus, before solutions – perhaps there are several – are offered, or the issue is closed.
Maintainers have the power to decide if an issue should be closed or a Pull Request merged into the project or rejected. On the path to merging a PR, as well as reading and testing a contribution, a maintainer might:
- Discuss it. Git management tools such as Gitlab, Gitea and Codeberg have discussion threads on every issue and PR, along with emoji voting and ways to quickly tag other community members. Here's a discussion
https://lab.civicrm.org/dev/core/-/issues/2122#current-behaviour about how to implement a seemingly simple change to add timezones for event listings in CiviEvent that runs to hundreds of comments. - Look at the PR's 'diff'. A diff is a colour-coded guide to the changes being made (red for deletes, green for additions) similar to track-and-changes in a word processor. This is the diff
https://github.com/civicrm/civicrm-core/pull/20476/files for a PR for the 53 changed files to implement the timezone improvement above. Unlike track changes, a diff for every merge and pull request in the history of a git-managed project is archived, so each change and signoff is attributed, and future problems can be debugged (this timezone change adjusted the times on the event listings of existing installs so a reverted version of the code was offered, which was easy to roll back to). If looking at the git archive for an employment contract, for instance, you could see who proposed to change wages and which maintainer merged (‘approved’) it.
- Invite reviewers. Much like peer review, a maintainer can invite reviewers to look at the PR. For instance in this PR
https://github.com/civicrm/civicrm-core/pull/23808 to improve the calendar integration in CiviCRM, a maintainer flags users who have expertise in specific areas, or are interested in seeing the feature integrated, to review the code. With enough positive peer reviews, the merge is made.
- Create a branch. Creating a branch is a quick way to copy the full code with the proposed change integrated to see how it works. Many organisations run trials or prototype an idea in a safe and ringfenced way before rolling out widely – branches are much the same. A branch groups all changes together so they can be tested, improved, forgotten or merged back if successful. If the initial issue was, for example, 'our energy bills are too high', and a PR towards this issue was 'turn off the heating for 30 minutes every hour', a branch could implement this in just one building or floor rather than the entire organisation. Another floor or building might implement another PR for 'turn heating down 20%'. Once it's established which idea works best, it can be merged back into the 'master branch'.
Despite these methods to make an informed merge of a PR, maintainers have a lot of discretionary power over the direction of a project. Because most open source projects start with one developer's 'itch' (Raymond, 1997)
Compared with the voting in a coop or corporate AGM resolution, this system of maintainers could appear strongly undemocratic. However open source projects can be seens as consensus-driven, with the community empowered through the potential to fork a project. A fork lets anyone copy and maintain their own copy of a project. If the project is trademarked they may need to rename it (as the Drupal fork Backdrop did
Forking underpins community governance by consensus, not the voting of coops or shareholder-governed corporations – a maintainer is trusted to do the job well and if they don't, they could lose their users and dev community who can take everything with them. As a result it's in maintainers’ interest to respond to issues and make fair judgements over PRs. Maintainers are sometimes known as Benevolent Dictators – Dictators for the power they wield; Benevolent because if their decisions don't reflect community consensus – they can be easily overthrown.
Famous forks like Joomla! and WordPress happened for different reasons: WordPress
For cooperatives looking at open source governance, arguably the challenge is to consider not just how much of their activity could be managed through a git repo – but how the culture that comes from an open repository — of people actively finding and fixing problems and improvements — can be encouraged.
Much already sitting on a corporate or coop intranet could be put in a repo: contracts, staff handbook, press releases, branding guidelines, product specifications, forecasts, minutes, recipes or user manuals – available to be easily edited, revised, tracked and discussed. Other areas without digital assets could still use an issues queue, project maintainers and archived decisions with the same repo management tools. For example, this planning space for CiviCRM's last community summit
However, while the functions described above could be adopted by many projects or organisations, forking is only available when the core assets are already open and easily copy-able (ie are digital, intellectual property or non-scarce, free assets like waste). This excludes coops who, for instance, share land, machinery, a brand, labour, or other limited resources. Still, perhaps forking's 'one click revolution' is a powerful enough tool in empowering consensus-led structures that co-exist with a powerful manager class, to make it worth cooperatives who cannot easily 'fork' exploring models that could offer similar potential.
A common criticism of the biggest cooperatives is that their management has become slow-moving and stale, so as to make the organisation indistinguishable as an employee or customer experience from other big businesses. Making it easier for members to vote to replace the management, or break a big cooperative into smaller coops would approximate some of the power of forking, but, unlike digital goods it's impossible to allow both 'branches' to exist in parallel. If new management does a worse job, you can't easily revert to the old team, unlike a fork of a digital project where if it fails the original is intact and still running. Indeed a digital fork only becomes threatening to the original if it ends up better or more popular, otherwise it will be forgotten.
Another option would be to prevent coops from getting too big in the first place, seeking not scale, but federation (Disco Manifesto, 2021)
But that's a bigger discussion. Without even including forking, or releasing all digital assets and IP under an open license, collaboration over git through issues, pull requests, maintainers and branches is still a new democratic idea. What's strange, given open projects' continued success and impact in the digital world, is that these working methods are barely known outside of programmers. For platforms seeking to offer their users and workers the most comprehensive democracy available, maybe it's time to change that.
"A momentous thing that can happen to a culture is they can acquire a new style of arguing: trial by jury, voting, peer review, now this. A new form of arguing has been invented in our lifetimes... The question for us now is, are we going to let the programmers keep it to themselves? Or are we going to try and take it and press it into service for society at large?"
~Clay Shirky, How the Internet will (one day) transform governmentShirky, Clay (2012) How the Internet will (one day) transform government. https://www.ted.com/talks/clay_shirky_how_the_internet_will_one_day_transform_government
*Some open source project have added more traditional democracy to their operations beyond maintainers: CiviCRM has an elected Community Council
Header image by opensourceway
Citations
Nicol Wistreich (2022). More Than Ownership: How Open Source's Contribution to the Commons Goes Beyond Licenses. Grassroots Economic Organizing (GEO). https://geo.coop/articles/more-ownership
Add new comment