Software Development Analogies
The quest for one simple Analogy or metaphor to describe software and its development continues after several decades. I believe you need multiple analogies to define different aspects about software development. Also taking one analogy to extreme or reading between lines will cause more harm than good.
Following analogies try to explain Software Development (some right and some plain stupid)
- David Gries says writing software is a science (1981)
- Donald Knuth says it’s an art (1998)
- Watts Humphrey says it’s a process (1989)
- Kent Beck say it’s like driving a car (2000)
- Alistair Cockburn says it’s a game (2002) or like Rock Climbing
- Eric Raymond says it’s like a bazaar (2000)
- Andy Hunt and Dave Thomas say it’s like gardening
- Paul Heckel says it’s like filming Snow White and the Seven Dwarfs (1994)
- Fred Brooks says that it’s like farming, hunting werewolves or drowning with dinosaurs in a tar pit (1995)
- Steve McConnell says its like Construction: The whole notation of software architecture, blue prints and modeling comes from here.
- I believe Software Development is like Trekking/Hiking
- Driving on Indian Roads Reminds me of the way I do Software Development
- I also like the Cooking analogy.
- Some people say its like Craft/Martial Arts (more on learning aspects)
- Others say its like Book Writing/Composition/Poetry
- I like Stand up comedy analogy. Software development has an improvisational aspect
- Software as oyster farming. I’m really interested from the system accretion aspect. Accretion is closely related to “incremental”, “adaptive”, and “evolutionary”
- And then of course we have the manufacturing analogy. Lean Manufacturing is more meaningful than assembly line manufacturing.
- I also like the Painting analogy. Demonstrates iterative and incremental thinking very well.