Lecture Notes for CS 325
The Cathedral and the Bazaar, 1 May 2000
- The Cathedral and the Bazaar, written by eric raymond
- principles
- developed from open-source projects
- i've squeezed them into the five categories (plus one) of our waterfall
model
- this damages at least two sets of principles - the waterfall
principles and the open source principles; oh well
- "(n)" indicates the n-th principle
- management
- "Plan to throw one away; you will, anyhow." - Fred Brooks,
"The Mythical Man-Month", Chapter 11 (3)
- Release early. Release often. And listen to your customers (7)
- Provided the development coordinator has a medium at least as good as
the Internet, and knows how to lead without coercion, many heads are
inevitably better than one (19)
- requirements
- Treating your users as co-developers is your least-hassle route to
rapid code improvement and effective debugging (6)
- The next best thing to having good ideas is recognizing good ideas
from your users. Sometimes the latter is better (11)
- design
- Good programmers know what to write. Great ones know what to rewrite
(and reuse) (2)
- Often, the most striking and innovative solutions come from realizing
that your concept of the problem was wrong (12)
- "Perfection (in design) is achieved not when there is nothing
more to add, but rather when there is nothing more to take
away." - Antoine de Saint-Exupery (13)
- When writing gateway software of any kind, take pains to disturb the
data stream as little as possible -- and never throw away information
unless the recipient forces you to! (15)
- When your language is nowhere near Turing-complete, syntactic sugar
can be your friend (16)
- A security system is only as secure as its secret. Beware of
pseudo-secrets (17)
- development
- Smart data structures and dumb code works a lot better than the other
way around (9)
- Any tool should be useful in the expected way, but a great tool lends
itself to uses you never expected (14)
- testing
- Given a large enough beta-tester and co-developer base, almost every
problem will be characterized quickly and the fix obvious to someone
(8)
- If you treat your beta-testers as if they're your most valuable
resource, they will respond by becoming your most valuable resource
(10)
- other
- Every good work of software starts by scratching a developer's
personal itch (1)
- If you have the right attitude, interesting problems will find you
(4)
- When you lose interest in a program, your last duty to it is to hand
it off to a competent successor (5)
- To solve an interesting problem, start by finding a problem that is
interesting to you (18)
This page last modified on 1 May 2000.