David Heinemeier Hansson

May 16, 2024

Open source is neither a community nor a democracy

Using open source software does not entitle you to a vote on the direction of the project. The gift you've received is the software itself and the freedom of use granted by the license. That's it, and this ought to be straight forward, but I repeatedly see that it is not (no matter how often it is repeated). And I think the problem stems from the word "community", which implies a democratic decision-making process that never actually existed in the open source world.

First of all, community implies that we're all participating on some degree of equal footing in the work required to further the welfare of the group. But that's not how the majority of open source projects are run. They're usually run by a small group of core contributors who take on the responsibility to advance the project, review patches, and guard the integrity of the vision. The division of labor isn't even close to be egalitarian. It's almost always distinctly elitist.

That's good! Yes, elitism is good, when it comes to open source. You absolutely want projects to be driven by the people who show up to do the work, demonstrate their superior dedication and competence, and are thus responsible for keeping the gift factory churning out new updates, features, and releases. Productive effort is the correct moral basis of power in these projects. 

But this elitism is also the root of entitlement tension. What makes you think you're better than Me/Us/The Community in setting the direction for this project?? Wouldn't it be more fair, if we ran this on democratic consensus?? And it's hard to answer these question in a polite way that doesn't aggravate the tension or offend liberal sensibilities (in the broad historic sense of that word -- not present political alignments).

So we usually skirt around the truth. That not all participants in an open source project contribute equally in neither volume nor value, and this discrepancy is the basis of the hierarchical nature of most projects. It is not, and never will be, one user, one vote. That is, it will never be democratic. And this is good!

The democratic ideals are fulfilled by the fact that open source is free and full of alternatives. Don't like how they're running a given project? Use one of the usual countless alternatives. Or start your own! Here, you can even use the work of a million projects that came before you as a base for doing new work.

But the reason this doesn't resolve the tension is that it still relies on showing up and doing the work. And there just so happens to be far fewer individuals willing and capable of doing that than there are individuals who wish they had a say on the direction of their favorite software.

You can't solve that tension, only acknowledge it. I've dealt with it for literally twenty years with my work on Rails and a million other open source projects. There's an ever-latent instinct in a substantial subset of open source users who will continuously rear itself to question why it's the people who do the most work or deliver the most value or start the most projects that get to have the largest say.

And when people talk about open source burnout, it's often related to this entitlement syndrome. Although it's frequently misdiagnosed as a problem of compensation. As if begging for a few dollars would somehow make the entitlement problem bearable. I don't think it would. Programmers frequently turn to the joy of open source exactly because it exists outside the normal employment dynamics of quid-pro-quo. That's the relief.

I frequently argue that open source is best seen as a gift exchange, since that puts the emphasis on how to react as receiver of gifts. But if you're going to use another word as an alternative to community, I suggest you look at "ecosystem". Ecosystems aren't egalitarian. There are big fish and little fish. Sometimes the relationships are symbiotic, but they're also potentially parasitic.

But whatever word you choose, you'd do well to remember that open source is first and foremost a method of collaboration between programmers who show up to do the work. Not an entitlement program for petulant users to get free stuff or a seat at the table where decisions are made.

About David Heinemeier Hansson

Made Basecamp and HEY for the underdogs as co-owner and CTO of 37signals. Created Ruby on Rails. Wrote REWORK, It Doesn't Have to Be Crazy at Work, and REMOTE. Won at Le Mans as a racing driver. Fought the big tech monopolies as an antitrust advocate. Invested in Danish startups.