Let's start with an obvious one: the problem of centralized vs distributed control structures. You know all about these, right? If I ask you what's a better org structure: a command-and-control hierarchy or a flat organization, most people have been indoctrinated to say obviously the latter. Similarly if I ask whether you should have an old crusty centralized database or a fancy distributed database, everyone wants to build the latter. If you're an SRE and we start talking about pets and cattle, you always vote for cattle. You'd laugh at me if I suggested using a non-distributed software version control system. The future of currency, I've heard, is distributed decentralized cryptocurrency. If you want to defeat censorship, you need a distributed social network. The trend is clear. What's to debate?
Well, real structures are more complicated than that. The best introductory article I know on this topic is Jo Freeman's The Tyranny of Structurelessness, which includes the famous quote: "This apparent lack of structure too often disguised an informal, unacknowledged and unaccountable leadership that was all the more pernicious because its very existence was denied."
"Informal, unacknowledged, and unaccountable leadership" is just as common in distributed computing systems as it is in human social systems.
The truth is, nearly every attempt to design a hierarchy-free, "flat" control system just moves the central control around until you can't see it anymore. Human structures all have leaders, whether implicit or explicit, and the explicit ones tend to be more diverse.
[...]
The defining characteristic of a chicken-egg technology or product is that it's not useful to you unless other people use it too. Since adopting new technology isn't free (in dollars, or time, or both), people aren't likely to adopt it unless they can see some value, but until they do, the value isn't there, so they don't. A conundrum.
It's really remarkable to me how many dreamers think they can just outwait the problem ("it'll catch on eventually!") or outspend the problem ("my new phone OS will be great, we'll just subsidize a few million phones"). And how many people think that getting past a chicken-egg problem, or not, is just luck.
But no! Just like with real chickens and real eggs, there's a way to do it by bootstrapping from something smaller. The main techniques are to lower the cost of adoption, and to deliver more value even when there are fewer users.
From the blog post:
[...]