60 of 63 people found the following review helpful:
5.0 out of 5 stars
Excellent book that teaches how to think agilely, June 1, 2003
This review is from: Lean Software Development: An Agile Toolkit (Paperback)
Books written during the first phase of agile software development have been about very specific practices we should employ. There are some excellent books on the Extreme Programming, Feature-Driven Development and Scrum agile processes. These books teach us "do a, b, and c if you want to do Extreme Programming" or "do x, y and z if you want to do Scrum."
In the last year we've seen books by Highsmith (Agile Software Development Ecosystems) and Cockburn (Agile Software Development) that represent the second wave of agile software development-that of learning to think agilely rather than following a prescribed set of agile rules. Mary and Tom Poppendieck's book is the latest and best book for teaching how to think agilely.
The book contains 22 "thinking tools." The thinking tools are drawn from the world of lean manufacturing where they have helped improve product delivery speed, quality and cost. Each tool is presented as a guideline. Each thinking tool is described with enough detail that you can put it into practice; but, more importantly, the reasons supporting each are made explicit. So, instead of simply reading that it is good to "deliver as fast as possible" we learn how rapid delivery is supported by pull systems (where work is pulled into the current step from the prior step), how queuing theory helps us identify bottlenecks, and how to calculate the cost of delay (to see which bottlenecks are worth removing).
This book is the perfect blend of highly actionable instructions and descriptions of why those actions work. I highly recommend this book to anyone who wishes to improve his or her software development process. The authors' ideas are applicable both to projects using agile approaches today and to more traditional, plan-driven projects.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
28 of 28 people found the following review helpful:
4.0 out of 5 stars
A good, practical book, May 17, 2006
This review is from: Lean Software Development: An Agile Toolkit (Paperback)
Our reading group at work recently read "Lean Software Development." There are several things I really like about this book:
1. Its thinking is clearer than most. The Poppendiecks make sharp distinctions between principles, tools, and practices. (More on this will follow.)
2. It presents an Agile approach without demanding that one follow all tenets of Extreme Programming (such as pair programming).
3. It recognizes that in the past it has been a mistake to think of software development as being roughly analogous to manufacturing. Creating custom software is not very much like assembling cars within a factory.. Software development is much closer to product development, much more like the work that goes into designing the car in the first place. Principles (not necessarily techniques!) that work well in product design can have a much more straightforward application in software design.
4. They specifically address the needs of safety-critical software, talking about how to apply these principles in environments that are heavily regulated or where a software failure may endanger lives.
The book does suffer at times from and affliction common to this genre: over-enthusiasm. There can be a sense that all we need to do is follow what they say and all will be well. But, for the most part, the authors provide reasonable, realistic guidance for those looking to improve the way they go about creating software.
Now that we have the overview, let's look at the meat of the book: Agile principles. There are seven Agile principles which should govern a group's software development process:
1. Eliminate Waste
2. Amplify Learning
3. Decide as Late as Possible
4. Deliver as Fast as Possible
5. Empower the Team
6. Build Integrity In
7. See the Whole
A chapter is devoted to each principle. In each, the principle is described, examples are given from both product and software development, and a number of "tools" are suggested as ways to apply the principle in software development.
The principles are valid within any development effort, software or otherwise. For example, a good process will always seek reasonable ways to eliminate waste. In product development and manufacturing, waste may include scrap material that does not end up in a product. In software, the definition of "waste" will include things like partially done work, extra processes, extra features, waiting,
etc.
It is very important to keep the distinction between principles, tools, and techniques in mind. Principles must be reasonably applied to a given environment. The authors put it quite well: (pp. 179-180)
* Eliminate waste does not mean throw away all documentation.
* Amplify learning does not mean keep on changing your mind.
* Decide as late as possible does not mean procrastinate.
* Deliver as fast as possible does not mean rush and do sloppy work.
* Empower the team does not mean abandon leadership
* Build integrity in does not mean big, upfront design.
* See the whole does not mean ignore the details.
"One team's prescription is another team's poison. Do not arbitrarily adopt practices that work in other organizations; use the thinking tools in this book to translate lean principles into agile practices that match your environment."
I strongly recommend this book.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
48 of 57 people found the following review helpful:
2.0 out of 5 stars
Great Principles based on Bad Assumptions, May 7, 2007
This review is from: Lean Software Development: An Agile Toolkit (Paperback)
I am a senior software systems engineer working for an aerospace company. I recently read the Poppendicks' book and have mixed feelings about it. Overall they present some great lean development principles and tools that appear to be useful in boosting productivity in my software engineering organization. On the other hand, their understanding of CMM/CMMI is so off-base that it is hard for me to take them seriously as authors.
They misrepresented CMM several times in the book, so they either do not understand what CMM is and how it works, or they are intentionally misrepresenting it to "scare" people into using their lean software tools. The reality is that agile software development principles and tools fit perfectly into the CMM/CMMI models and the Poppendicks would have a much stronger book if they realized that. Rather than bashing CMM to make their tools seem more useful, they might do better if they realized that CMM/CMMI and lean software development can work perfectly together.
My advice to people interested in buying the book is to only read the book if you can take what the Poppendicks say with a grain of salt. Read about the lean principles/tools and think of how you could apply them in your software development environment. In the spirit of implementing the primary principle of lean development (i.e. eliminate waste), I would ignore the anecdotes they include in the book. They appear to be intentionally sensational while offering little value.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No