Many years ago, Melvin Conway had observed that how organizations were structured would have a strong impact on any systems they created. Repeated studies have demonstrated the accuracy of Conway’s Law, and companies like Amazon take full advantage of it when putting together teams to build new software.
Put simply, Conway’s Law states that:
Any piece of software reflects the organizational structure that produced it.
Adolfcoin is an experiment in creating a decentralized, infinitely scalable and self-managing structure to build a decentralized and infinitely scalable cryptographic currency.
Isn’t open source software already decentralized and self managing?
Generally speaking, open source software is developed in a very centralized and draconian environment, this is especially true for cryptocurrencies. Project founders or the “development team” are in charge, and they insist on things being done their way. The direction of the project is decided upon by the founder or a team of core developers. You must work within their vision for the project, or at least you must first convince them of your idea or improvement and get some form of approval. Patches are reviewed and judged against this vision.
To have something that scales well, it either has to be very expensive, or it has to be decentralized. While Visa and MasterCard can simply throw money at the problem, cryptocurrencies must become more decentralized in order to scale, which means embracing Conway’s Law instead of fighting it.
In addition, and perhaps more importantly, a decentralized cryptocurrency is only useful if it cannot be manipulated by a charismatic leader. If the development process can be hijacked by a charismatic leader it’s a failure, even if that leader’s name is Gavin Andresen, Donald Trump, or The Führer. It was originally believed that the solution was to make future modifications to the consensus rules difficult without near unanimous agreement as this would make charismatic takeover very difficult. In practice, this approach results in a denial of service type vulnerability where an attacker can easily prevent progress and growth.
But how can we develop software without centralization and leadership?
Arguments for the necessity of centralization and leadership rely on the myth of individual intelligence. Software engineers don’t like the notion that powerful, effective solutions come into existence without an intelligent designer actively thinking things through. And yet, I’ve been unable to find a developer who believes in some form of monotheistic intelligent design over the theory of evolution.
In the dominant theory of innovation, brilliant individuals reflect on large problem sets and then carefully and precisely create a solution. Sometimes they will have “eureka” moments where they “get” brilliantly simple answers to whole large problem sets. The inventor, and the process of invention are rare, precious, and can command a monopoly. History is full of such heroic individuals. We owe them our modern world.
Look more closely, however, and you will see that the facts don’t match. History doesn’t show lone inventors. It shows lucky people who steal or claim ownership of ideas that are being worked on by many. It shows brilliant people striking lucky once, and then spending decades on fruitless and pointless quests. The best known large-scale inventors like Thomas Edison were in fact just very good at systematic broad research done by large teams. It’s like claiming that Steve Jobs invented every device made by Apple. It is a nice myth, good for marketing, but utterly useless as practical science.
Recent history, much better documented and less easy to manipulate, shows this well. The Internet is surely one of the most innovative and fast-moving areas of technology, and one of the best documented. It has no inventor. Instead, it has a massive economy of people who have carefully and progressively solved a long series of immediate problems, documented their answers, and made those available to all. The innovative nature of the Internet comes not from a small, select band of Einsteins. It comes from RFCs anyone can use and improve, made by hundreds and thousands of smart, but not uniquely smart, individuals. It comes from sharing, scale of community, and the continuous accretion of good solutions and the disposal of bad ones.
Here thus is an alternative theory of innovation:
- There is an infinite problem/solution terrain.
- This terrain changes over time according to external conditions.
- We can only accurately perceive problems to which we are close.
- We can rank the cost/benefit economics of solutions to these problems.
- There is an optimal solution to any solvable problem.
- We can approach this optimal solution heuristically, and mechanically.
- Our intelligence can make this process faster, but does not replace it.
Smarter people may work faster, but they may also work in the wrong direction. It’s the collective vision of reality that keeps us honest and relevant. Larger, more diverse communities identify more relevant problems and solve them more accurately and faster than a small expert group.
James Surowiecki studies this in detail in his book The Wisdom of Crowds. None of this is new though, the ancient Greeks worked it out a long time ago when they decided that the larger public mind was better at solving problems than one dictator, and Machiavelli was talking about the same thing when he said Vox Populi, Vox Dei. In fact, it’s this belief that underpins our sometimes shaky belief in democracy today. We just tend to forget it when talking about software development.
If you’ve got this far, you’ll be wondering how Adolfcoin can have a roadmap. Well, it can’t, a roadmap is of course incompatible with a decentralized process. The roadmap is simply what the Führer would like to work on if the situation doesn’t change, and people want to have a sense of where things are going.
The Führerprocess is an experimental protocol to allow strangers to work together without centralization and also without the need for planning or upfront consensus. In fact, this protocol is completely incompatible with centralization and upfront consensus. It applies to everyone who works on Adolfcoin, without distinction. A cardinal sin that many open source developers make is to place themselves above others. “I founded this project thus my intellect is superior to that of others”. It’s immodest, rude, and inaccurate.
To see the nuts and bolts of how this works, read the annotated Führerprocess here.
You may be wondering how the Führerprocess itself is enforced without centralized authority. The answer is that the Führerprocess aims to be self-perpetuating in the same way a torrent is self-perpetuating. The Führer is of course the initial seeder, but as more people start seeding the Führer becomes more and more irrelevant. Let’s see if it works.