⇥ The Cathedral In Disguise

June 6, 2007
4 comments
 
⇥ Permalink

You may be familiar with Eric Raymond’s famous manifesto The Cathedral and the Bazaar (CatB), which is generally considered an excellent analysis of open-source software development. If not, go and take it in—it’s a fascinating read.

What I find fascinating is the fact that the distinction between Cathedral and Bazaar is not, in my opinion, entirely accurate. There is a third model, which I call the “Cathedral in Disguise” that fits somewhere in between the two—and PHP is a very typical example of it.

The Bazaar in Disguise
For those who are too lazy to read, a simple recap (paraphrased from this entry in Wikipedia): in the Cathedral development model, source code is distributed with each release, but is instead restricted to the core development group during development; in the Bazaar model, the code is developed in a public forum and made available to everyone, who is, in turn, asked to contributed and “shape” the final product.

On the surface, PHP seems to belong to the bazaar category; its source code is freely available to everyone who knows how to run CVS or wants to fetch it from the snaps website, and the development effort takes place entirely over a public mailing list that is open to everyone.

However, one of the tenets of the bazaar is that, to quote Raymond, “[t]reating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging,” and this is something that the PHP development group does very poorly.

If you, like most people (including me), don’t have sufficient “karma” to make your opinions count, the likelihood of your opinion—no matter how sensible—having a direct influence on the development of PHP is next to zero.

Karma Is Not Everything
There is, in principle, nothing wrong with this. To be fair, the vast majority of complaints and suggestions (at least that I have seen and, on occasion, made) that appear on the development mailing list don’t stand on their own legs. However, even those that are presented sensibly, or at least with an attempt at making a reasonable effort at explaining one’s point of view, are often met with indifference and, sometime, scorn.

This makes PHP a somewhat bizarre cross between a completely open project to which everyone can participate and a software developed with a process that, effectively, leaves little room for outside intervention or suggestion. For all practical purposes, to the average user, PHP is, and will always be, a cathedral.

The bazaar-like appearance of the development process is, indeed, very harmful to the project as a whole. There is nothing worse than being lured by the apparently freedom of a development mailing list that is open to everyone, only to have the rug swept from under your feet with no explanation beyond the typical “you don’t count enough.” What’s worse, ignoring one’s opinions is not enough—developers being the weird bunch they are, they feel the inevitable need to heckle and argue—and thus countless (and completely pointless) flamewars are born.

The Conference Incident
Speaking in personal terms, my worst exposure to this strange reality occurred during what I refer to as the “conference incident.” Back in February, conference news were unceremoniously, and without any warning, yanked from the main page of PHP. I thought that that was a bad idea, and mentioned that, at the very least, it would have been appropriate to discuss what to do with them first. As it is my custom, I wrote a detailed e-mail to the webmaster mailing list explaining why I thought this was not a good idea. I thought the e-mail was sensibly written and upfront about drawing the line between what are my personal interests and what I believed the needs and goals of the community as a whole to be. My contributions to the community are not evident by reading a mailing list or counting the number of commits that I make—I have never pretended to be a phenomenal developer, or to understand how PHP works in depth (and, by and large, I have avoided making comments about that). I am a business person, and my contribution to the community has always consisted in helping to spread the word—witness the countless webcasts and podcasts that we have produced, which are open to everyone—as well as lending a hand to many people by, for example, directing business their way, or bringing them together with potential employers.

The kind of reception that my comments received was a complete and painful surprise to me. While the messages on the mailing list are somewhat restrained, the climate on IRC was much less friendly. I have a policy of leaving on IRC what happens on IRC, but suffice it to say that, worse than the name-calling—which I stopped caring about when I left middle school—was that, with some very timid (but much appreciated) exception, I was openly mocked even by those people whom I thought would appreciate the relationship I had built with them over the years and would have, if not defended me, at least avoided showing complete disrespect for what I do for a living.

It was a very disheartening episode in my life as a PHP enthusiast, and I make no secret of the fact that I took it very badly—to the point that I considered, for a short while, folding everything and moving on to something else. It took nearly four months before I would even decide to speak of this publicly, and I’ve been agonizing over this blog post for weeks.

The irony, of course, is that, as I pointed out in my e-mail, the impact of removing the conference news from the main page on my business has been negligible. We still sold out our last conference some six weeks ahead of its start, and I doubt that any other of the big conferences was in any way affected by this decision. We have marketing budgets, and we’re not afraid to use them. All that this move accomplished was to harm the smaller, community-driven conferences, which were suddenly deprived of a major publicity outlet, and make php.net less relevant to the community that is looking for more than downloads and the manual (however important those may be), but for a point of reference for news, information, and other tidbits of PHP-related materials.

Demolishing the Cathedral
I am sure that a number of people won’t take this post well. If that’s the case, then so be it. I had to get it out there and, as far as I’m concerned, all is square again.

I don’t know if there is a solution to this problem—in fact, for all I know the problem may be all in my head, although I keep hearing rumblings of disagreement by a community that feels increasingly disenfranchised. As Philip Olson pointed out in a comment to Jeremy Privett’s aforementioned rant, forgiveness comes hard, and the Send button is too easily pushed. There are, however, a great number of incredibly talented people who work on PHP day in and day out—all they need is a little guidance in making their relations with their community better.