⇥ The Cathedral In Disguise
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.
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.
Comments
I remember the Conference Incident day – it was obviously stressful for you. I tried hard not to enter the IRC fray while it was heated (but recall my resolve failing and I possibly made some comment or jokey statement at the end).
Conferences are an integral part of the community and have helped my work with PHP. I’m glad your conferences continue to be successful. The conference listings on php.net currently seem fine to me, if somewhat inconsistent (why is WebTech and not the closer Dutch PHP Conference shown in the center as the next upcoming conference?)
My thoughts about CatB development styles and PHP are that the culture of the core PHP development team doesn’t reflect the (huge) wider community, nor will it unless wholesale altruism comes in. And I don’t think it will because the code development is by necessity very much a matter of “if you need it, do it”.
The culture will only evolve if some fundamental process changes happen that embrace instead of reject ideas, promote discussion, and make processes clearer. I’ve commented before on the infamous “Bogus” bug status, and on tweaking the release process.
In the meantime I look forward to the bugs.php.net changes that are happening at the moment, and I hope a redesign of php.net (that Rasmus once alluded to on IRC) happens.
And I look forward to the next conference.
Another example of open minded-ness: http://daylessday.org/archives/7-Those-who-speak…html
The cleverest people I know welcome criticism and discussion. That’s how they get to be clever. The disturbing thing about this is that a bad developer culture – rude, dismissive, uninterested in other views – is inevitably going to have an effect on the language. Php won’t ever be as good as it could be without intelligent, interested, enthusiastic people to drive it forward, either inside or outside the developer clique.
I do agree that a huge “lasciate ogni speranza voi che entrate” sign would not be unfit atop the internals mailing list. But…
…developer ego knows no upper limit, it is a known fact. I have only once stumbled into an oss project – which I shall not name (let’s say it’s a minor php app dealing with project management) – where the developers formed a tightly knit closed circle, completely oblivious to any external idea or code contribution, and absolutely unprepared to sustain any criticism, even the most constructive one. The day I stumbled, by pure chance, on the ‘internals only but not quite locked down enough’ forum where my request for cvs access was discussed was very bitter indeed. No need to say that the request had been turned down, and my ip banned from access to the forums,cvs server and bug tracker as cautionary measure.
I think it was Margurerite Yourcenar who took the stance to never criticize any person not present…
…otoh the kernel dev ml has long been known as a very, very dangerous place to thread. It apparently did not stop linux from steadily evolving and gaining acceptance
There really is some disconnect between the – huge – php user base and the restricted developers community, and it is possibly growing, but just inviting every dedicated user to voice his opinion would drown meaningful proposals in a sea of noise.
Maybe all php needs is a bdfl with the charisma and fame of Linus?
希望大家都會非常非常幸福~「朵朵小語‧優美的眷戀在這個世界上,最重要的一件事,就是好好愛自己。好好愛自己,你的眼睛才能看見天空的美麗,耳朵才能聽見山水的清音。好好愛自己,你才能體會所有美好的東西,所有的文字與音符才能像清泉一樣注入你的心靈。好好愛自己,你才有愛人的能力,也才有讓別人愛上你的魅力。而愛自己的第一步,就是切斷讓自己覺得黏膩的過去,以無沾無滯的輕快心情,大步走向前去。愛自己的第二步,則是隨時保持孩子般的好奇,願意接受未知的指引;也隨時可以拋卻不再需要的行囊,一路雲淡風輕。親愛的,你是天地之間獨一無二的旅人,在陽光與月光的交替之中瀟灑獨行。