What blockchain can learn from open source
What blockchain can learn from open source
To be successful, blockchain startups must build communities the open source way.
Over the 10+ years I've been involved with open source, I've been part of small projects with innovative ideas that grew into large projects with solid communities. I've also witnessed the way dysfunctional communities can suck the energy from projects.
I've also recently become active in blockchain by writing and contributing to projects. I've noticed that blockchain projects are like startups with open development and open business models. Therefore, to be successful, blockchain startups must learn how to build communities the open source way.
4 ways blockchain differs from other open source projects
Open source code
One of the fundamental premises of blockchain is decentralization—giving control and data back to the user. Decentralization can't be achieved without transparency and openness. If the blockchain's source code is closed, it's no different from the centralized, closed systems of yesterday—unless it's open, there's no way to read and confirm a system is doing what it promises to do.
Even projects that are trying to avoid open source recognize the code must be open to a minimum level. For example, Hedera Hashgraph (which is not a blockchain project, but a similar class of software) won't freely distribute the code for forks but will open it for review. Whether we could classify this as open source, according to the Open Source Initiative definition, is debatable. Bottom line: If the source code is not readable or verifiable, there is no point in having something run on a non-trusted blockchain platform.
Open source blockchain projects differ from other types of open source projects in that they open their runtime (as well as their source code). Other open source projects can develop in the open but run and be consumed as an open core, as a service, or as part of a closed system. Public blockchains are permissionless, that is, anyone can join a network, leave a network, or run a node or two. This represents a trustless and borderless runtime with open governance.
Open source blockchain projects make their data open. Anyone can fork the code (the client application) or the data (the blockchain history) and start a new network. That ultimately makes blockchain projects the most open software systems ever. Open code, open data, open runtime, and an open business model ensure openness across multiple dimensions.
Open business model
Blockchain startups are a unique mix of open source development and open value capture models blended at the source code level. While a non-blockchain based open source project creates value through collaborative development and open adoption, capturing value happens through a separate business model (such as SaaS, open core, subscription, etc.) that can be determined later. With blockchain projects, the business model is described in a white paper and the token model that captures value is implemented in advance in the source code. This makes blockchain projects a unique blend of value creation and instant capture and distribution.
Why be so open?
Most blockchain projects aim to become a platform or hub with open standards and protocols that will first attract and be adopted by developers and later be consumed by users. The primary way they attract developers is not through technical superiority over non-blockchain technology, but by the unique decentralization characteristics achieved through openness. These platforms must be open to become more attractive than the closed systems developers and users have been using. Being open is not only a prerequisite for blockchain's transparency, but also for its distribution and adoption—especially when it comes to attracting developers to consume the platform or protocol. Open source enables developers to explore, learn, and start using a project.
Isn't "open" a weakness?
There was a time when opening your code was considered risky because a competitor could copy and steal your code or ideas. Today, being open source is the primary way to attract developers, especially for developer-centric platforms, tools, and libraries. However, since blockchain also makes the runtime and the data open, anyone can fork the code and the data and start a parallel network. This makes a project even more vulnerable to splits, forks, and value grabs (as we've seen with forks of popular blockchain networks such as Bitcoin and Ethereum). Even so, open projects are performing better than closed projects that are trying to prevent forking and can't as easily attract followers. This is because being open is considered a sign of strength. If a network is so open and has still survived forks and attacks, its community is even stronger.
The concept of openness has expanded beyond projects to include people and organizations who are eager to share their knowledge through open source code, conference talks, blogging, tweeting, and more. Innovation is happening so fast in certain areas that an inventor will have already created a new idea before anyone else can understand and copy the old one. Being a copycat in a winner-takes-all-market has a negative networking effect on community growth. In the journey to conquer closed and centralized systems, being open is the primary weapon.
Hype is different than community
Successful initial coin offering (ICO) investors often measure a project's hype before making an early investment. (This usually works only when the early investment is followed by an early exit. In practical terms, this means identifying the most hyped ICO and selling all tokens as soon as it hits an exchange.) Hype is usually measured using simple statistics around an ICO's following on Twitter, Facebook, Reddit, Telegram, etc. But these metrics have little value for measuring a community's strength for the following reasons:
- Metrics are artificially inflated with fake accounts, paid followers and subscribers, etc.
- The ICOs run airdrop campaigns and distribute tokens for following, subscribing, joining, etc.
- These are the wrong metrics for measuring a developer-centric community
An open source project that will be used by developers (e.g., as a platform or protocol) should measure developer activity, not airdrop-hunter activities. None of the actions mentioned above build stickiness in a project community. In fact, they all purposefully skew a community's metrics using temporary incentives.
Community over market cap
The Apache Software Foundation (ASF—of which I'm a member, committer, and Project Management Committee participant) is one of the biggest and oldest software foundations, home of hundreds of popular open source projects. It has a very fundamental belief: "Community Over Code." While the ASF would have no reason to exist without the code, this slogan codifies how the organization operates. First and foremost, the ASF is a home for communities, not just a repository for code. The code is the byproduct of a good and healthy community, and the ASF tries to grow healthy communities united around projects.
For example, an ASF project measures its activity and progress by the number of mailing list subscribers, emails sent, issues opened/closed, pull requests created/merged, software releases done, committers, and PMC votes. The last one is a significant long-term indicator of a project's health, as it measures the community members' commitment level to the project's success. All these metrics are all about activities performed by technical people rather than temporarily incentivized airdrop hunters. These activities are harder to fake, as they require someone to do something (usually consuming brain power and time) for the project, not just click a like/follow button (which is easier to outsource).
A blockchain project has a more complex ecosystem than a typical open source project. There are developers, but also miners (or whoever runs the network), investors, and users. Measuring developer activity alone isn't a sufficient indicator of the full ecosystem's strength, but focusing on the right metrics would be a good start.
In a similar spirit to the ASF's "Community over Code," I think cryptocurrencies would benefit from putting "Community over Market Cap." A healthy community is a far more important long-term measure than a temporarily large market cap.
The price of a token or coin and its market cap can be artificially manipulated or temporarily affected by a bear market. A strong and healthy community can survive ups and downs. An unhealthy community, without any stickiness to the project, will fall apart regardless.