As of November 2021 there are 28 million public repositories at GitHub. Internet literally runs on open source software. After recent log4j drama there were a lot of debates (here is a very good example) about how critical parts of modern IT world are maintained by online communities and how it can be improved.
So, I asked myself a question – how exactly you can build a thriving open source project and create community around to support and maintain it? I came across the book Social Architecture by Pieter Hintjens (a founder of ZeroMQ project) gives his view on processes and guidelines how to successfully achieve such goal.
The book starts with definition and description of 20 key ideas or tools that online community should have to be successful in the long term. Transparency, decentralization, strong mission and non-tribalism are among others.
After that book moves to explaining the idea that innovation is not done by a small group of people but rather it comes from a well-defined process:
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, though not uniquely smart, individuals. It comes from open source software that anyone can use and improve. It comes from sharing, remixing, and scale of community. It comes from the continuous accretion of good solutions, and the disposal of bad ones.Hintjens, Pieter. Social Architecture: Building On-line Communities (p. 38). Pieter Hintjens.
Basically, the book states that well-defined protocols how community members interact with each other is a mandatory pre-requisite for Collective Intelligence and, as outcome, successful open source product.
The author explains what types of licensing exist today and what are the pros and cons for each type. Other practical explanations about watermarks and how to register them are also in place.
The second half of the book describes how ZeroMQ community has been built and operates today. The most interesting part for me was dive deep into Collective Code Construction Contract (C4) that describes in RFC-like format how community should build, distribute and maintain open source software.
One more refreshing idea that I found in the book is that ZeroMQ community does not use roadmaps and do not release features. They use Simplicity Oriented Design and see a product as an endless chain of patches stack one on top of another. Every patch represents the most simple solution to a very specific problem. This idea, probably, not new but allows to look differently on traditional approach with long roadmaps and constant prioritization of engineering resources.
Overall, the book has number of interesting ideas and real life examples. 4.5 out of 5.
Have a look on my other book reviews!