Tuesday, September 11, 2007

Thoughts on Eric S. Raymonds piece "The Cathedral and the Bazaar"

I was about to simply read "The Cathedral and the Bazaar" and post my thoughts afterwards when I came to this quote, "Plan to throw one away; you will, anyhow." I think its a great line and had to immediately say that I totally agree.

I agree with points 2-6 in "The Mail Must Get Through" section, but I am somewhat iffy on point 1.  I think quite a few pieces of software started off to get someone rich (perhaps wealth is a personal itch?)

In section "The Importance of Having Users" I disagree with the idea of having users being the guinea pigs for debugging.  This seems to put the idea that 'the software organism' is what is important, and that perfecting it should be our pinnacle of success; I believe that user satisfaction should be the pinnacle of success.  Now having perfect software will make people happy, but if our non-hacker-but-still-users have had to put up with several iterations of buggy software , they will not be happy.  There is a place for beta-testing, however in house testing should be done thoroughly before software is released for serious products.

I only half believe the statement "release early. release often."  I think it should be "release carefully. then release often."  Release the software after through testing, but after this initial release phase the maintenance patches should be rapidly implemented and deployed.

I agree with his section about throwing away features.

I think the idea of "harnessing" communities more than solitary brains is cute, but not necessarily true.  Sometimes great ideas come from only one head.

The rest of the article is interesting and informative, but simply based on the authors desire to defend the Bazaar style.  The author then demonstrates the successful stories of the bazaar and seems to ignore the unsuccessful stories, or the bad sides to bazaar style development.


Chris said...

"Release early, release often" is the opposite of "release carefully" -- the point is that it's better to get incomplete and untested code into the hands of the community, where it can be rapidly developed, than to hang on to it and develop it slowly (or let it stagnate). This has often proven to be a good choice, even though it is counter-intuitive. Consider the "Bugs" section of many of the Unix manpages (many people thought it was ludicrous that Unix utilities shipped with known bugs!).

Michael Mullin said...

I disagree that it is the opposite. The "cathedral" method can be used to implement the 'first iteration' of the software, where the bazaar can be used on all subsequent iterations.

ie, release carefully, release often.