I consider that the golden rule requires that if I like a program I must share it with other people who like it. Software sellers want to divide the users and conquer them, making each user agree not to share with others. I refuse to break solidarity with other users in this way. I cannot in good conscience sign a nondisclosure agreement or a software license agreement.
Richard Stallman, GNU Manifesto
Partly co-written with my friend George at Epistemink
Imagine…
If you were to build an organisation to do something difficult, how would you structure it? Would you be inclined to stamp your authority everywhere, indelibly inked into the very molecules? Would you choose democracy, the accepted organisational structure to give everyone a voice and get things done?
Studies of organisational democracy usually tout its benefits in terms of employee engagement and higher productivity. But when we consider how it is employed in the political context vs organisational context most of the essential characteristics of democracy are either nonexistent or ineffectual.
Most of these organisations work by tapping into the urges within us that tell us we need to do things to be worthwhile and to get resources. We use these to help bind people to our cause, and to explore how to do impossible things. This stands as true for those who start things, as the employees who join.
And yet, when we look around we see plenty of blame going around towards autocratic corporations, greedy billionaires, and even the dysfunctional democracies we live in. It feels as if regardless of the form that’s chosen we do end up in some kind of a mess.
All of which makes it particularly interesting that there exists another world which blends the best of democratic worldview with organisational fervour and incredible innovation, and it's the world of open source software. Whenever I have tried to think through the pursuit of innovation to be either academia or startups, it's been pointed out time and time again that a third rail exists. It not only seems to be uniquely leaderless in its design (as oft said) but is also responsible for the vast majority of value that we see around us, at least in the software domain.
Which also brings an interesting question of why this should be the case, or rather if this means we should take the learnings of org design from open source and apply it everywhere!
Maybe the dream of utopian anarchic value creation is not so crazy after all.
Actually …
The theory goes that Open source is great because of its democratic model that allows everyone to contribute ideas and leads to greater collaboration and less territorial infighting.
Let’s do a few google searches to see where we get. Say I’m a weird fanboy that wants to buy a t-shirt with the face of celebrities I worship. I can get a lot of models with Linus, and with Stallman, what about Will Grannis, or Werner Vogles?
Wait, you don’t know who those last two even are? Of course you don’t, because they are just the CTOs of Google and Amazon… scratch that, the former isn’t quite the CTO, he “leads the office of the CTO”, because Google can’t have a CTO, it has to be a committee.
And sure, these people have power, in a very niche sense in that they can mildly control the behaviour of sub-managers reporting to sub-managers and that might influence Google policy. But they have to be careful, they can’t force their entire team of engineers to use a single language because “they think it’s the best one”, they certainly can’t maintain a personal page calling all other tech companies evil, supporting anarchy, distrust of media and communism, they can’t negotiate with other tech giants by swearing at them to change behaviour and whatever titles they may aspire to, “benevolent dictator for life” isn’t one.
No, in fact most open-source projects are so unitary and strict in governance that they make Steve Job’s Apple management look like the Athenian agora. Their leaders range from well-respected by everyone to worshipped. Lest this seem like hyperbole, it’s worth pointing out that voluntary theism is still theism even when the idols are chosen for their “awesomeness” rather than their charisma.
But first, this is not without reason, most programmers respect very good programmers. Very good programmers are, by and large, very good at understanding what other programmers can do. Very good programmers that pour their souls into a codebase can, ultimately, do whatever they want with it, they are not helplessly waiting to trickle stuff down the chain of command, hoping that the right engineer will want and be able to do the right change.
Broadly speaking, in spite of Linux having dozens of thousands of contributors, Linus can wake up in the morning, decide he wants to do something, and release it that night. Conversely he probably never does that, because he’s a capable engineer and knows it’s a bad idea, but the fact that the power ends up being unused is not a very compelling reason to say the power doesn’t exist. De facto power is still power.
Even committee-run projects like C++ have pretty lax rules for joining the government committee, which boil down to “if you have the time to fly to the meetings and nerd out with us on forums, uhm, sure, and the committees themselves have official and unofficial leaders with a lot of sway.
Other than a wish for bloodshed, what most good generals (your Atillas, Temujins, Alexanders and Charleses) have in common is that they were on the ground with their men, taking insane risks to their own well being, putting in as much effort as everyone, besides the whole “leading” bit which they did as a bonus. Or at least they proved they could do that for a dozen years, and were then persuaded to step down from doing that. This applies to broadly any field, that’s why you don’t have Michelin 3-star franchises, the good people come and do a good job in part because they know better people are in charge.
Why are the best engineers living in cabins in the wood, working on rustc for free, in spite of a somewhat abusive committee, when they could be in a cushy position as level 5 metapal making 7 figures?
Why are the best chefs living in Paris, getting abused by Guy Savoy, making pennies, when they could be making 7 figures managing McDonalds?
This is not to say the open-source model of strong-leaders is good, there’s a reason tech companies can’t operate that way.
Snowflake is worth $83 billion , Mariadb $678 million, but Postgres is worth 0 cents. Ping the best programmer you know and ask them, if they were to choose a single database to use for the rest of their lives, how they’d rank those 3.
That is not to say programmers working on open source projects are putting up with draconian work conditions for free, quite the opposite. You work with great people because you like it, because there’s no incentive other than “liking it”, or in so far as there is an incentive it’s to signal “hey, I’m here, I work with these amazing engineers, I probably learned something from them, give me a high paying job <giant corporation>”. Either way, it makes sense for you to work that way.
Open source projects are what a startup looks like, built by people that want the product with people whose main incentive is building that same product because they also like it. As to why open source projects can scale that way to thousands of people, while startups lose the spark at employee number 5, that’s another question.
But then …
From the examples of the projects above, it seems primarily suited to building those things which are substantially influenced by having a messianic founder and sufficient community love.
Primed in this fashion, OSS looks like a particularly strong memetic organisational structure. One that uses its drawbacks (of not having a sufficiently engaged or indeed paid employee base) and twists those into a positive, of finding enthusiastic fans and using them as the means of replication within the ecosystem.
(as an aside, we did recently try to financialise and trade said status by creating tokens, and that hasn’t worked out all that well for a lot of people yet)
Generally speaking, in this world, you either work for an explicit reward or an implicit one. Explicit reward can be like to gain status or money. While these are not necessarily orthogonal, people do choose one over another as a sort of happy trade. For instance you might choose to become a Professor over going into investment banking, and this is a way of choosing status over money. Status here is something conferred by society or your peers, and money is a market determination of the value of something you’ve done. But the tradeoff here is similar, choose a thing and do more of what gets you that thing.
Implicit reward on the other hand involves things that don’t fall within this spectrum. These are hobbies. I write, you read, we listen to music, people do woodworking, all of these are activities we do because it's fun for us personally, not just because it’s an acknowledged optimisation of some external validation. Implicit rewards include you wanting to write online, or tweet, or chat with interesting people you met at a party.
It is this gravitational force of implicit reward that open source developed around. Projects get successful through a combination of adoption and genius founder halo. If writers were able to collaboratively create books together with each other (apart from the odd compendium) they would do it too in absence of immediate rewards. In fact they already do. As does any passion based endeavour - whether that’s acting, music, dancing - all done, often with others, because you love it.
Open source though is an area which has most conquered this “hobby genus” to create extraordinary external value that’s recognised and used in the external world. Everyone wants to work with those who are the best in their field. Referred halos are real.
We don’t see this in other commercial areas much anymore. We don’t see civil engineers using tools created by a bunch of enthusiasts for fun and building your house with it. We don’t see electrical engineers using a custom soldered board with wires hanging off it. This seemed to happen all the time before - architects without formal qualifications or builders with just great instinct - in the days before the inexorable rise of formal qualifications. But in software, this is still normal.
Yet, there is no anarchic utopia here that survives contact with the wider world. Today there are externalities creeping in, where if you’ve contributed good code to multiple projects you can show that in your github profile and get a job, but this so far still a result rather than an objective. As it becomes an objective that people will start optimising for, as seems inevitable, then this terrarium of intriguing behaviour will come to a stop.
If the lesson is that iconoclast geniuses can create cults of personality that self organise into creating specific pieces of software, that too is rather incredible.
What can they not do? They usually suck at creating anything for the mass market. Or things that require user experience to be at the centre of it, like an application or a game. The difference in those is not that those are fundamentally different in terms of scale or complexity, it’s that they are highly heterogenous.
Coding even something as complex as Linux is way more self-similar internally than what it takes to create Overwatch1. For the latter you need many more types of people to be brought into the “cult”. So just as coders recognise great coders and want to code alongside them, the same gravitational attraction becomes repulsion when it’s alongside other graphic designers, or story developers, or marketers. You still see it developed, sometimes as a marketing tactic even, though it’s rarely as integral to the world as Postgres.
What all this tells us put together is that the most successful open source projects have a) a messianic founder who is often some sort of unkempt genius, b) a plethora of highly sophisticated talent who want to work with the founder because of his genius and the sexiness of the problem, and c) its ability to self organise so you can contribute where you think you know best rather than taking orders.
Only c) above is somewhat anarchic in its nature. When we started with the first question on what the right organisational form is, this would have been one of the options. But it doesn’t work by itself. Again, we’ve had an explosion of crypto love that says as much. I don’t know to what extent George will agree with my conclusions here, but the fact that the coolest projects also seem to have the craziest people in charge is at least an indication that craziness seems a pre-requisite as a schelling point to craft the group around.
Open source is not anarchy. Passionate, messianic people find followings, whether that’s in a religion, or a cult, to build a phone or to code an OS. It is another way in which people choose whom to work with, and it too falls prey to the financialisation as does most things. Self organisation still requires leaders and a high degree of belief, agnostic to the organisational design, which is a fantastic lesson that we need to relearn.
We’re already seeing the increasing interest of VCs in the space and its existence as a business model using people’s excitement about the project and love for openness as a marketing tool. We’re seeing the corporate-isation of this geeky subculture, and it has already almost happened. Ali Ghodsi is wildly different to Richard Stallman, just as open source software has become different to the free software movement.
This is progress, I don’t begrudge it moving forward, though I do miss the sharp edges. After all, sharp edges are what it takes to make something new in the world.
Excellent note from Stephen Malina who notes - “Good post overall. Minor nitpick on the below point, a lot of early games that were widely adopted, such as Doom, were written by teams of ~10 people. And at least in the case of Doom, a huge fraction of the actual code was written by a messianic genius (John Carmack).”
“Hell is other people” was all I can think about while reading this. It’s really occasional for me to find joy co-writing with other people, but when I do, man I never let that shit go.
>We don’t see this in other commercial areas much anymore. We don’t see civil engineers using tools created by a bunch of enthusiasts for fun and building your house with it. We don’t see electrical engineers using a custom soldered board with wires hanging off it. This seemed to happen all the time before - architects without formal qualifications or builders with just great instinct - in the days before the inexorable rise of formal qualifications. But in software, this is still normal.
I'm reminded of the evolution of vacuum tubes and digital electronics, as described in Making Silicon Valley[1]. At a certain time, in the early 1900s, the best, most advanced vacuum tubes were basically made by ham radio hobbyists out in California. As demand (quantity and quality) for these tubes increased, their production became more standardized and formalized, which, of course ended in the state of the electronics fabrication today. Now, no one can 'dabble' in microelectronics fabrication at home, table stakes are billion dollar fabs.
It seems like this trend is repeated among the other examples you give. Expectations and standards for commercially acceptable work are so high that it's impossible to really compete without having learned hard-won best practices. Conversely, the reliability standards for most software seem pretty low?[2] I don't know what the software environment looks like for use-cases where failure results in death, but I'd be surprised if any of them rely on OSS without serious modifications and subsequent qualification.
Initially I was going to say that it's weird that even after 50+ years, software development is still in this state, where enthusiasts without formal schooling or qualification could make significant contributions, but then I remembered that ship-building was very much in this state for centuries, until the discovery of the physical laws governing fluids. As far as I know, much ship-building knowledge was empirical and passed down on the job, rather than in the classroom. Presumably that's why the Vasa[3] could have been built and 'sailed' as late as the 1600s.
It's hard to imagine that software will be the sole human technical endeavor that will be immune to formalization and professionalization to the point where enthusiasts could not seriously compete with competent, well-funded, well-staffed corporate endeavors. Seems likely that at some point in the future (years? decades? centuries?) some sort of fundamental advance in the understanding of software development will be discovered, which will essentially exclude talented enthusiasts from making meaningful, commercially relevant contributions ever after.
----------
[1] https://mitpress.mit.edu/books/making-silicon-valley
[2] I was looking for a video or tweet about someone (Casey Muratori) listing the dozens of bugs they encounter just using a computer for 30 minutes
[3] https://en.wikipedia.org/wiki/Vasa_(ship)\'