At work we have a book circle. Now we have completed reading “The Nature of Software Development” by Ron Jeffries that I have talked (a lot) about. Now I was on the hunt for a new book to start reading after the summer (almost everybody takes vacation during the summer in Sweden).
I started to look here, at my existing book reviews. I scanned book stores on the Interwebz, I started to walk around in the office sneak peeking at what books that were lying around. I ended up in the “relaxation room” (“vilrum” in Swedish, which every company about a certain size must have).
In there, I found this little gem!
“Lean Software Development” is written by Mary and Tom Poppendieck and was published 2003. I sent out a tweet to ask if it still was worth reading (taking in the fact that 13 years have passed since it was published). The answer was “Yes!”, so I started browsing.
It turned out that there is a lot of good stuff in here that are still very valid!
Seven simple rules or principles for software development
- Eliminate waste: Spend time only on what adds real customer value.
- Amplify learning: When you have tough problems, increase feedback.
- Decide as late as possible: Keep your options open as long as practical, but no longer.
- Deliver as fast as possible: Deliver value to customers as soon as they ask for it.
- Empower the team: Let the people who add value use their full potential.
- Build integrity in: Don’t try to tack on integrity after the fact – build it in.
- See the whole: Beware of the temptation to optimize parts at the expense of the whole.
Bam! 100% agile thinking cranked inside those seven simple rules (focus on value, feedback loops, options, fast delivery for knowledge, empowerment of the team, quality and no sub optimization)!
Throughout the book, 22 tools are presented. They are:
- Tool 1: Seeing waste – The seven wastes of SW development: Partially done work, Extra processes, Extra features, Task switching, Waiting, Motion (eg. hand-overs) & Defects.
- Tool 2: Value stream mapping
- Tool 3: Feedback
- Tool 4: Iterations
- Tool 5: Synchronization
- Tool 6: Set-based development
- Tool 7: Options thinking
- Tool 8: The last responsible moment
- Tool 9: Making decisions
- Tool 10: Pull systems
- Tool 11: Queuing theory
- Tool 12: Cost of delay
- Tool 13: Self-determination
- Tool 14: Motivation
- Tool 15: Leadership
- Tool 16: Expertise
- Tool 17: Perceived integrity
- Tool 18: Conceptual integrity
- Tool 19: Refactoring
- Tool 20: Testing
- Tool 21: Measurements
- Tool 22: Contracts
Which tools in the list above are you using? We use some of them for sure in one form or another. Set-based development and Options thinking are not something we do, but seems very interesting.
Have you read ”Lean Software Development – An Agile Toolkit”? What do you think about it? I think that we may have found the next one for our book circle! 🙂
All the best,
Tomas from TheAgileist