So someone mentioned I should have read this
already. They were right.
Upfront note: The article above is about the [advantages of the] Linux model for developing software. I'm not a Linux fan. I'm not even convinced open-source development is a better way to produce software. I do not buy some of the arguments put forth by Raymond. The reasons I'm quoting the article is depth is because much of it is interesting and applicable outside of that argument.
(So far, most of my experience is with cathedral-born software, and I'm relatively happy with it. I have a vague hope that I won't mind switching someday, but I'm not there yet. I'm watching, and waiting, secretly hoping for some bastard hybrid that is clearly uber-good. )
On with the quoting..."...you get an A not for effort but for results, and that it's almost always easier to start from a good partial solution than from nothing at all."
Title Analogy:"I believed that the most important software ... needed to be built like cathedrals, carefully crafted by individual wizards or small bands of mages working in splendid isolation, with no beta to be released before its time. Linus Torvalds's style of development - release early and often, delegate everything you can, be open to the point of promiscuity - came as a surprise. No quiet, reverent cathedral-building here - rather, the Linux community seemed to resemble a great babbling bazaar of differing agendas and approaches ... out of which a coherent and stable system could seemingly emerge only by a succession of miracles."5. When you lose interest in a program, your last
(me: and most important, ne?) duty to it is to hand it off to a competent successor.3. ``Plan to throw one away; you will, anyhow.'' (Fred Brooks, ``The Mythical Man-Month'', Chapter 11) ... if you want to get it right, be ready to
(me: more than, strike, anxious) start over at least once.4. If you have the right attitude, interesting problems will find you.
(me: I've always believed this, but most people called it the wrong attitude. ;)"Users are wonderful things to have, and not just because they demonstrate that you're serving a need, that you've done something right...""Lazy like a fox.""Given enough eyeballs, all bugs are shallow.''
Lots of interesting discussion on this.``Somebody finds the problem,'' he says, ``and somebody else understands it. And I'll go on record as saying that finding it is the bigger challenge.''
(me: This should please anyone who has ever worked QA. :) "If you treat
[xxx] as if they're your most valuable resource, they will respond by becoming your most valuable resource."
(me: Yes, I could tell you what xxx is, but I refuse.)11. The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better.
There's a lot of discussion of the benefits of giving work and giving credit to other people. The writing preaches that non-competitiveness both gets you ahead and produces a better product. Who's read No Contest
(or anything else by Alfie Kohn)? Educators, raise your hands please. :)12. Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong.
Oh.. let's just add a Hell, yeah!13. ``Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.''
Mmm. :) "Michelangelo, how did you make David
?" "I saw David in the stone, and chipped away everything that was not David.""it pulled far enough in front of the competition to potentially become a "category killer'', one of those classic programs that fills its niche so competently that the alternatives are not just discarded but almost forgotten. ... I think you can't really aim or plan for a result like this."
Hmm... random social commentary: "Neither of us was 'original' in the romantic way people think is genius. But then, most science and engineering and software development isn't done by original genius, hacker mythology to the contrary.""14. Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected."
Rock on."Beware of pseudo-secrets."
Hehe. Yes. :)"When you start community-building, what you need to be able to present is a plausible promise."
And little else. i.e. "Your program doesn't have to work particularly well. It can be crude, buggy, incomplete, and poorly documented.""[the] project succeeded partly because I restrained my tendency to be clever"
Yeah. I hear that, brotha.
You know what... I can't finish this now, so...to be continued...