Lean Software Development : An Agile Toolkit, Mary Poppendieck and Tom Poppendieck . A great resource on how the lean principles from product manufacturing can be applied unto software development. You can find a good overview in their 2002 paper here (pdf) and the Wikipedia article on Lean .
Overview
Each chapter in the book describes “thinking tools” for the 7 Lean Principles .
- Eliminate waste describes how to identity and remove waste to maximize the flow of the value stream.
- Seeing Waste
- Value Stream Mapping
- Amplify learning emphasizes how short feedback cycles can improve the resulting product and development process.
- Feedback
- Iterations
- Synchronization
- Set-based development
- Decide as late as possible to deal with uncertainty, and make better decisions.
- Options thinking
- The last responsible moment
- Decision making
- Deliver as fast as possible to enable late decision making, and produce value as fast as we can.
- Pull systems
- Queuing theory
- Cost of delay
- Empower the team to make use of the expertise that lies with the people that do the work.
- Self-determination
- Motivation
- Leadership
- Expertise
- Build integrity in to accommodate change and increase the period of usefulness of a product.
- Perceived integrity
- Conceptual integrity
- Refactoring
- Testing
- See the whole warns against sub-optimization, and provides tools for keeping the bigger picture in mind.
- Measurements
- Contracts
Books on process take me longer to get through than those dealing with technical topics – with the density of information in some of the chapters, this one was no exception. It’s a real eye-opener though and comes highly recommended for those wishing to improve their software development process, even for those in non-agile environments.
What to read if you are in a hurry
The part on Queuing Theory is informative and captures the substance of the book well. More on this later.
Photo by Aliis Sinisalu on Unsplash




