If you’ve ever worked with a version control system like cvs or svn, you will understand what branches are: They are the places – away from the trunk – where a new idea is tested and developed to maturity until it can either merge with the trunk or even replace the trunk.
It occured to me today that all of the world’s progress happens in exactly this way. We have a new idea, but it is not really ripe yet to be introduced into the trunk of thinking (main stream), or the trunk of technology (status quo), or the trunk of a company (core business).
It is our choice
We can now take one of two routes: we can either try and grow it from within the trunk. Or we can branch.
Depending on how flexible the trunk is and how open and embracing the people that are part of it, building from within may well be the best means.
However, if our idea is a little more revolutionary and replaces some of the traditional thinking, we will have a hard time. We might as well be brave and start a new branch to develop and demonstrate our ideas. And if enough people adopt the branch over the trunk, the branch will eventually be merged back into it or replace it completely.
This is a healthy process and helps make the best possible progress.
Don’t be afraid of branching
I have many experiences from standards bodies, companies, research groups, and social groups, where this idea of healthy branching has not been applied and thus the groups have failed.
One way to fail is to succumb to social pressure and just forget about our idea, i.e. not daring to start a branch.
In a sports team, such behaviour has led to the loss of games, because it is destructive to our own psyche not to follow our conviction – and thus it is destructive to the team.
In R&D teams it has led to the loss of IP because the novel idea was then had and demonstrated somewhere else.
In contrast, one persistent ski jumper has managed to bring a revolution to the technique of ski jumping and eventually caused a change of rules (changed the trunk).
Trunks are vital
Another way to fail is to completely ignore the necessity of a trunk and start developing in branches only, with the hope that at some point the branches will grow together and magically create a trunk.
I’ve seen this happen over and over in research teams and in large standards bodies. It is amazing how much high intelligence can be wasted in this way!
It takes a lot of courage to start a branch, because such activities often lack the support of the trunk people.
Trunk people should learn to value branch activities more highly, and not belittle or demonise them. After all, they were often branch people earlier and should know about the value such activities present to progress.
Branch people should learn to value the healthiness of a strong trunk and not wave it aside as a small issue that will solve itself eventually as all branches grow together. Because – branches don’t usually grow together – and if they do, the resulting tree is usually a cripple.