Forking In The Weeds
Last time, I wrote in defense of forking.1 A fork is an outburst of hope and creativity; a natural happening. That was the view from the mountain-top. On the mountain, one sees all the pretty flowers in the valley below. All well and good, but I need to get to ground level. I need to point out the weeds. We need a fuller picture of forks.
Luther and The Reformation
We think of forking as it relates to software, but that’s just a subset. The best guide to forking comes from the world of religion: The Reformation.
Martin Luther nailed his 95 theses to the cathedral door in 1515 AD. Nowadays, we call that Lutheranism, and let’s call that ‘Fork #1’ from Catholicism. Ten years later, some folk in Switzerland deemed Luther too worldly, too aligned with warlords. They forked off and that became Fork #2: Anabaptism. Then, a generation later, the Scot John Knox taught that the Anabaptists stupidly mirrored the structure of the Establishment. Hence, we got Fork #3: Presbyterianism. The Presbyterians put power in the hands of each community-church. A generation later, around the turn of the 17th century, Fork #4, Congregationalism (a.k.a. The Puritans), stripped even the local ‘presbyters’ of authority over their brethren.Lessons
You might see these as ongoing improvements.
That’s a moot point. Even my bare-bones overview of ‘Reformation Forks: The First Century’ tells us that forks rarely run smoothly. Purity test was heaped on purity test. Things got more and more extreme. A lot of force for good was wasted.
For all the hope and creativity, when a project is split by a group of choleric dissenters, that same yellow bile unleashes thrang energy.2
Bilious Leadership
Leaders of forks are rebels. They take on the World. They are idealists. They are born that way. The Ancient Greeks would say that they have an excess of yellow bile. This rebellious spirit is needed to buck the yoke of the mainstream project.
Once a fork has stabilized, the ordinary foot-soldiers often scratch their heads as to their leader’s behavior. He might be overly idealistic, making plans way beyond the means of the group. He might also be bolshy, badgering friends as if they were foes.
You need a strong stomach for purity tests.
Knottiness
No project starts ex nihilo. However, a non-forked project, one which starts from an original idea and a visionary person, holds less baggage. It works with speed and ruthlessness. It’s strategic to do so; that’s part of it; but it’s more just the way visionary people are.
Let’s look at bitcoin (BTC) and Satoshi Nakamoto. Satoshi was a careful person.3 He spent one and a half years crafting bitcoin. Once it was released, however, he did not muck around. You may read his comments and see that he didn’t spend time debating or deliberating. When a thorny issue arose, like vulnerabilities with Op_Codes, he didn’t try to make a nuanced fix; he just disabled the feature.
Forkers tend to be the opposite. They’ve had time to analyze everything. Forkers usually come from a highly educated class. With The Reformation, they were trained theologians. With software, they are professional developers. The end-result is often a slow, knotty product. There’s feature-creep. This is why so many forked projects are lamented by fans as having “lost the plot”.
I’m not too negative
Don’t get me wrong. I still tend to cheer on forks; at least the ones I sense are doing it for the right reasons.
I’m just saying: Be wary.
These recent forks of bitcoin— eCash (ECX), bitcoin blake2B (XBC/BTC2B), bitcoin 2nd chance (BC2)— I’m open to them. I wish them well. I will watch their progress. I even bought a tiny bit (<$100) of BC2 . I still use the legacy version, BTC.
It’s wise to keep one’s options open.
Getting around the pitfalls of forks
To anyone thinking of forking a project, I would offer three pieces of advice.
1. Keep the goals modest
- Do not aim to solve all the problems with the original.
- Be very clear about your goals.
- Stick to them.
2. Prep well before launch
- Forks launch with a lot of goodwill, but that goodwill drains away quickly.
- Do not give curious punters the runaround.
- A Github page does not take the place of a good-looking website.
- Test more than you think is needed.
3. Get versions 2 and 3 out soon
- Many forked projects declare victory if version 1 is a big win.
- It’s actually versions 2 and 3 which make the win.
- Nothing solidifies a fork’s success like a steady series of upgrades.
Takeaways
- Forks are, in general, good, but tend to suffer from common weaknesses.
- Leaders of forks tend to be bilious and/or overly idealistic
- The new project tends to get ‘knotty’, i.e. over-ambitious and full of unwanted features.
- Forks should keep simple, clear goals.
- A win is winning over years, not just in the first few months.
- ‘Forking’ is making a fork, as in ‘fork in the road’. It’s when a copyable project gets copied by a relatively small group of devotees in order to make some crucial changes. From then on, the minor version carries on its own path. (Return)
- I mean figuratively. The ancient theory of the ‘Four Humors’ posited that choleric personalities (i.e. angry, forceful) were caused by a surplus of yellow bile. (Return)
- I grant that ‘Satoshi Nakamoto’ might have been a small team. Even were that so, there was still clearly a visionary; a project leader. (Return)