Don’t Go Dark, Go Distributed
Jeff Atwood argues that open source projects are in real danger of programmers “going dark,” which means they lock themselves away silently for a long time, then surface with a huge patch that implements a complex feature.
It seems to me that this is as much a technological problem as a social issue… and that we have the technological solution figured out: it’s called distributed version control. It means that that lone developer who locked himself in a room need not resurface with a single huge patch – instead, he can come back with a branch implementing the feature in individually comprehensible steps. At the same time, it allows the lone programmer to experiment in private and throw away the most embarrassing mistakes, addressing part of the social problem. (Git scores particularly highly on both counts as it provides tools for extensive history rewrites. This means that the revision history can edited retrospectively both for readability and for preservation of pride. As Assaf Arkin quips,
that way, we’ll think you wrote test cases ahead of the code!)
Now that the tools have started to gain real traction – more so in the open source world than in corporate, of course, but it’s in open source that the problem is most dangerous, as corporate can use policy to cope with it –, it remains to be seen how much of the problem is in fact social.