Notes on the prelude chapters of Lean Software Development (2003)
Principles
- Eliminate Waste:
- Specific cursory examples of waste:
- “If a development cycle has collected requirements in a book gathering dust, that is waste.”
- “If developers code more features than are immediately needed, that is waste.”
- “In product development, handing off development from one group to another is waste”.
- **The ideal is to find out what a customer wants, then develop it and deliver exactly what they want, virtually immediately. Whatever gets in the way of rapidly satisfying a customer need is waste.”
- Q: Is flexibility in architecture waste?
- Specific cursory examples of waste:
NOTE
I’d probably consider “find out what a customer wants” to be an area of personal improvement. My personal interview/grill skills definitely leave a lot to be desired; I have a hard time not projecting my personal desires/concerns/opinions into the process.
- Amplify Learning:
- Iterative learning; the ability to get it wrong, but move on fast
- Specific analogy is cooking recipes: the ability to make→evaluate→make.
- Cycle mentioned from earlier:
- Design
- Implement
- Feedback
- Improve
- Decide as late as possible
- “A key strategy for delaying commitments when developing a complex system is to build a capacity for change into the system.”
- Half-answers Q from above: “Is flexibility in architecture waste?”. Leaning no, but I’m still perpetually haunted by conversations around “But what if they want…?” —
- “A key strategy for delaying commitments when developing a complex system is to build a capacity for change into the system.”