“We reject kings, presidents and voting. We believe in rough consensus and running code”

–David D Clarke

I thank Sunny Aggarwal for putting quote above on his presentation at Cosmoverse on September 27, 2022. This post is about that quote and a few primitive thoughts linking learning, organization design, and perspective coordination.

Kings, presidents and voting

Kings, presidents, and voting can be placed on an axis. A king is centralized authority with relatively little consent. A president is centralized authority with consent. Voting is distributed authority with consent. In each step, the relative power of the hierarchy to impose arbitrary decisions upon a network is checked by some reactive network mechanism. It is still common in some parts of the world for an absolute monarch to justify their power by arguing that they only require the consent of God, which they are assured they have, and you don’t have any right to question it.

In Britain, the experience of 1066 to 1966 is marked by a gradual decentralization of decision making power. Each time something truly bad happened – war, the black death, peasant revolts, bastard feudalism, war, civil war, war, war, war, social displacement, war, stasis, decay, war, and decline – power became less centralized. It lurched. The British claim they don’t really believe in Revolution but that’s just a story they tell themselves to differentiate from the French. In all reality, progress has been marked by violent lurches towards decentralization. Some of these events were so violent that they drove an English philosopher to argue that even if it isn’t completely true that we’re accountable to God, there’s still good sense in centralizing authority in order to create order. The alternative, empowerment, leads to chaos.

Each step in the process, from Kings to Voting, increased the freedom of action. A long, slow, brutal process of making the world as surface for the expression of freedom, for everybody. The work is far from done, and possibly will never be done.

The rejection of voting is a pretty interesting concept given how hard it was fought for, and because of the next two concepts that follow.

Rough Consensus and Running Code

I interpret rough consensus as a system that is more technocratic in nature than democratic [1]. The usual organized anarchy dynamics are at play because groups of individuals are in the mix and decision opportunities appear all the time [2].

Decision making is primarily a process of who will take personal responsibility for a course of action [3]. Decisions should be recorded and the owner self-identified. An unowned decision is a predictive factor in failure. So much failure, from the trivial to mass destruction, can be avoided if only decisions are clearly stated and clearly owned.

Taken together, I understand rough consensus as a process by which a decision is made, is owned by somebody, and that there is an agreement for collective action at best, or, passive acceptance at worst.

My interoperation is that rough consensus is that veto power is weak. When everybody has a veto over any action, then nobody has any freedom to act. Consensus is reached in part by defining as much of the proposed solution as necessary to generate a rough consensus. On this point, I perceive two forces. The engineer has a tendency to be as precise as possible when detailing a decision. More detail doesn’t always generate more consensus. Sometimes, it can create better decisions through dialogue.

Running code is the last identified point on the spectrum. Code executes or it doesn’t. If you want code to live, it has to be run. Running code in contemporary contexts means that energy from one place needs to be transmitted by the electromagnetic force and run through integrated circuits. Both have a cost. So somebody has to pay to run code. Not all code needs to have rough consensus to exist. The monetary barriers to entry for running code has fallen to a relatively affordable cost for a plurality of people. There is more work to do.

You don’t really need rough consensus and consent to run code yourself. You can just author it and, if you wrote well enough for it to run, it’ll run. If it’s useful, it’ll create value. If it’s run in a context to receive enough recognition to get value it will run for a very long time, possibly for a time long exceeding the horizon imagined by its author.

Not all perspectives need to be coordinated to achieve a rough consensus. Not everybody needs to consent for code to run. There’s something deeply empowering about both concepts. Creative destruction is a positive force and fair. It’s always interesting when hierarchal power has to react to disruptive networks.

In this way, continuing on with the axes, rough consensus requires less consent than voting, and decentralizes more power. Running code requires even less consent than rough consensus, and decentralizes yet more power.

Why The Need For Perspective Coordination In The First Place?

It was my first time at Cosmoverse. I listened a lot of language, trying at first to appreciate the words for what they were, and then putting them frameworks that I know.

I listened to a persistent theme of institutions not reflecting our values. I heard those five words, “institutions not reflecting our values”, said on stage twice. Words and memes carrying a similar signal were generally repeated and echoed throughout the conference, on couches, and shouted into ears over mohitos.

Kings, tyrants of the order one, are not responsive to the public because they don’t need consent from the public (They were anointed by God, after all, and God said that y’all better behave down here! Don’t make him pull this car over). Presidents (and their civil service) petty tyrants of the order ten, are not as responsive to the public because they only need consent for short windows of time, during which they can lie, bribe, and manipulate public opinion, after which the public is safely ignored, or, a convenient scapegoat identified. Voting, tyrants of the majority (at best), plurality (at median), or minority (at worst), are not as responsive to the public because power is contested and decisions continuously re-litigated. Who has the energy [2] to overturn all precedent and who has the courage to defend the rights of the few against the privileges of the many?

As communities, we get better, more creative, decisions as a direct result of joint co-creation of the future. Voting is better than electing a President or tolerating an arbitrary King. At least centralizing power is fenced in so long as there is popular will to fence it in.

As people, it could be argued that we get far better, far more creative decisions as a direct result of rough consensus and running code. Create a better world for your community. Create a better experience for yourself. Or don’t. You have the power to decide.

A Better Future Through Action?

The best way to create a better future is to create it.

Running code creates the future just by running. It creates a future that people want, or it doesn’t. It really could be that simple.

Ideas can be very unifying. They can also soak a field in soldiers’ blood.

I’ll argue that the belief in rough consensus and running code is a continuation of a trend, and a good one at that.


[1] Russell, A. L. (2006). ‘Rough consensus and running code’ and the Internet-OSI standards war. IEEE Annals of the History of Computing28(3), 48-61.

[2] Cohen, M. D., March, J. G., & Olsen, J. P. (1972). A garbage can model of organizational choice. Administrative science quarterly, 1-25.

[3] Allison, G. T., & Graham, A. (1999). Essence of decision.