I am terrible at metaphors but I am going to ignore that and plough ahead with the one implied in the title of this post, and equate a software product to a baby (highly original, I know). The occasion is a post by Adam Martin lamenting that GitHub is killing Open Source. How? Like this:
This is a gross generalization – and not every project that loses its Author will get this problem – but I’ve encountered more and more “dead” projects on GitHub over the course of 2011.
Of course … the way GitHub is designed, those projects do not appear to be dead. Often they appear to be very much “alive” – there’s tonnes of activity.
But all that activity is going on in radically different and massively incompatible forks. It’s wasted time and energy, it’s programmers fixing the same bugs – multiple times – because they are NOT collaborating any more.
In the case I cited at the start, 100-plus developers have (probably) re-written the same fixes for the same problems.
The problem is very real. And urgent. However, the blame in my view does not lie with GitHub. That they provide, nay encourage forking, and make it difficult to transfer ownership (if I understand Adam correctly) no doubt exacerbates the problem. But the real issue is the frontiersman approach to development, the idea that each one duplicates (forks) the codebase in order to implement a change, postponing the pain of collaboration i.e., merging. Git (before GitHub) merely formalises this model under the auspicies of DVCS.
To emphasise my point, the real problem is not that Git or GitHub enables entropy or divergence. The real problem is not technical, but one of what is central to the effort. Consider Eric Raymond’s Cathedral and Bazaar metaphor in a very different sense. A Bazaar has no central object. It exists, often temporarily, for disparate individuals to assemble briefly to exchange goods and then go their separate ways. In contrast, a cathedral has a central focus. God, if you will (or spirituality, redemption, whatever your religion of choice prescribes). Unlike a bazaar which exists to facilitate free but undirected exchange, the very object of a cathedral (arguably) is to bring people together to a common goal or action.
Or, if you prefer, there is the African maxim made popular by Hillary Clinton: it takes a village to raise a child. The emphasis of the activity is the child and it’s rearing. And you cannot fork a child.