Tending to mediocrity
Tuesday, November 16th, 2004For the first time in a few years, I’ve found an article linked off of slashdot that manages to be both articulate and interesting. Once I recovered from the initial shock of such an anomaly, I found surprising parallels between the trials and tribulations of wikipedia and the open source community.
The article, for those who haven’t read it, discusses why the very openness and ‘community’ aspect of wikipedia ensures its own limited usefulness.
Open source suffers from the exact same problem. The very openness of the source, the low barrier to patch acceptance (in most cases), and the group oriented approach ensures the final results is somewhat of an incoherent jumble.
There are, of course, many exceptions. The exceptions are in cases where there is a strong gatekeeper who by default refuses community submissions, preferring instead to have the submitter sell their case successfully first.
I’m sure all open source participants/project owners like to think of themselves as qualified gatekeepers. Statistically though, the majority of the patches you receive will be mediocre, yet for most projects, the patch acceptance level is well over 50%.
Setting aside the gatekeeper issue, there’s also the spastic community aspect to further defecate onto the project in ways far beyond harmful patches.
User contributions and suggestions are a good example. Much like in politics, the average bumpkin hasn’t a clue on what’s best for them. They will kick up a fuss and demand features that are simple bad design, out of scope, irrelevant, or already covered through some other mechanism.
The examples of this sort of thing are everywhere. Jakarta clogging is a good one, where a tool has come about that nobody actually needs. JBoss is the same, with huge disparity between various modules. Some are written by people who have perhaps taken a java class or two, whereas some are written by people who’s sole ability seems to be to flail about helplessly in the general vicinity of a keyboard (UnifiedClassLoader 1-4).
To be fair, I’ll toss in a closed source example; IDEA. The more community-driven IDEA’s features are, the more end users are dissapointed. IDEA 4.0 for example was driven by users feedback and what they wanted. It’s a shining example proving that that particular set of end users is as stupid as Texans.
So open source (I realise I’m generalising, and there are plenty of projects that prove this wrong, but they’re the minority) ends up suffering from the same problems wikipedia does. The competency distribution curve makes sure of this.
How is closed source any different? Well, there’s a higher barrier to entry, and there’s a carrot/stick mentality that caters better to the fact that the average developer is a fuckwit. You do well, you get paid well. Do badly, and you’re punished. Being paid well lets you buy shiny things, which makes you happy. Not being paid will make you sad, and your significant other will mock you/become sad/point and laugh at your genitalia/starve. Beyond some dubious penis tugging, open source just doesn’t have the same cold hard incentive/disincentive approach. Submit a bad patch that gets committed by a desperate committer? No big deal, at worst some random joe schmo will think ‘well this code sucks’.
I do want to stress that there are projects that buck this trend, but the laws of statistics apply there too, they’re few and far between, with the majority sitting pretty in the middle hump of mediocrity.