Lean Software Development identifies fundamental lean principles and shows how they can serve as the foundation for agile software development that works.
Summary
Title: Lean Software Development: An Agile Toolkit
Author: Mary Poppendieck and Tom Poppendieck
Themes: Agile, Career, Cases, Technology, Management, Business
Year: 2003
Publisher: Addison-Wesley
ISBN: 0133812960, 9780133812961
Pages: 236
In Lean Software Development, Mary and Tom Poppendieck identify seven fundamental "lean" principles, adapt them to the world of software development, and show how they can serve as the foundation for agile development approaches that work.
Along the way, they introduce 22 "thinking tools" that can help you customize the right agile practices for any environment.
Better, cheaper, faster software development - you can have all three if you adopt the same lean principles that have already revolutionized manufacturing, logistics, and product development.
Lean Software Development shows software professionals how to achieve breakthrough quality, savings, speed, and business value by adapting the seven lean principles that have already revolutionized manufacturing and R&D. Drawing on 25+ years of experience leading enterprise projects, the authors show how to use these principles to create agile processes that work - because they're optimized for your environment.
The development of Agile software requires innovation and responsiveness, based on generating and sharing knowledge within a development team and with the customer. Agile software developers draw on the strengths of customers, users, and developers, finding just enough processes to balance quality and agility.
My Book Highlights:
"... Toyota and Honda had discovered a different way to avoid the penalty of incorrect design decisions: Don’t make irreversible decisions in the first place; delay design decisions as long as possible, and when they are made, make them with the best available information to make them correctly..."
"... It is, therefore, best to avoid this expectation, either by stating at the front that scope is negotiable or by defining scope at a high level so it is negotiable in detail..."
"... Somehow, the idea that variation is bad has found its way into software development, where people have tried to develop standardized processes to reduce variation and achieve repeatable results every time. But development is not intended to produce repeatable results; development produces appropriate solutions to unique customer problems..."
"... Increased application domain knowledge across the entire software development staff. Acceptance of change as an ordinary process and the capability to accommodate emergent design decisions. An environment that enhances communication to integrate people, tools, and information..."
"... Perceived integrity means that the totality of the product achieves a balance of function, usability, reliability, and economy that delights customers. Conceptual integrity means that the system’s central concepts work together as a smooth, cohesive whole..."
"... The economic benefit of the rapid flow of value through the value stream is also hard to measure, yet increasing flow is an excellent way to identify and eliminate the waste created by sub-optimizing measurements..."
"... Practices for one domain will not necessarily apply to other domains. Principles, however, are broadly applicable across domains as long as the guiding principles are translated into appropriate practices for each domain..."
"... The key to communication about complex systems is to hide details behind abstractions when a broad picture is desired and move to lower levels of abstraction to flesh out the details..."
"... In a service economy, quality does not mean conformance to a script; it means adapting to meet the changing expectations of many different customers..."
"... It seemed that everyone’s job existed solely to help the line workers, and the workers in turn were fully engaged in their jobs..."
"... Suppose a developer has a conversation with a customer about the details of a feature. The conversation should not be considered complete until it is expressed as a customer test..."
"... It may seem like writing tests slow down development; in fact, testing does not cost, it pays, both during development and over the system’s lifecycle..."
"... The simple mathematical fact working here is that variation is always amplified as it moves down a chain of connected events. A little variation in step one introduces a huge variation five steps later..."
People using agile processes can refer to the 22 tools that Mary and Tom describe to understand why and how the most common agile processes work or to construct their own agile process.
Some key insights and learnings from the book include:
- The importance of understanding customer value and using it as a guiding principle for all development activities.
- The importance of eliminating waste, such as overproduction, waiting, defects, over-processing, over-engineering, unnecessary motion, and unused talent.
- The importance of building quality into the process from the start, through practices such as test-driven development and continuous integration.
- The importance of continuous improvement and the use of techniques such as kaizen to drive change.
- The importance of flow and how to optimize flow through techniques such as Kanban and pull systems.
- The importance of understanding and managing variability, and how to use techniques such as statistical process control to improve predictability and reduce risk.
- The importance of building a culture of experimentation and learning, where teams are empowered to experiment, learn, and make decisions based on data.
The book emphasizes that Lean principles are not only beneficial to the software development process but also improve the overall business performance by delivering more customer value, faster and with less waste.
Chapters of the Book:
Chapter 1: Eliminate Waste
The Origins of Lean Thinking
Tool 1: Seeing Waste
Tool 2: Value Stream Mapping
Try This
Chapter 2: Amplify Learning
The Nature of Software Development
Tool 3: Feedback
Tool 4: Iterations
Tool 5: Synchronization
Tool 6: Set-Based Development
Try This
Chapter 3: Decide as Late as Possible
Concurrent Development
Tool 7: Options Thinking
Tool 8: The Last Responsible Moment
Tool 9: Making Decisions
Try This
Chapter 4: Deliver as Fast as Possible
Why Deliver Fast?
Tool 10: Pull Systems
Tool 11: Queuing Theory
Tool 12: Cost Of Delay
Try This
Chapter 5: Empower the Team
Beyond Scientific Management
Tool 13: Self-Determination
Tool 14: Motivation
Tool 15: Leadership
Tool 16: Expertise
Chapter 6: Build Integrity In
Integrity
Tool 17: Perceived Integrity
Tool 18: Conceptual Integrity
Tool 19: Refactoring
Tool 20: Testing
Chapter 7: See the Whole
Systems Thinking
Tool 21: Measurements
Tool 22: Contracts
Try This
Chapter 8: Instructions and Warranty
Caution—Use Only as Directed
Instructions
Troubleshooting Guide
Warranty
In conclusion, Lean Software Development by Mary Poppendieck and Tom Poppendieck is a game-changing book that shows how Lean principles can be applied to the software development process to deliver more value, faster, and with less waste.
By reading this book, you'll learn how to focus on the customer, eliminate waste, build quality in, optimize flow, manage variability and create a culture of experimentation and learning.
It's a must-read for anyone looking to improve their software development process, and it's not just limited to software development, it's a valuable guide for any business looking to improve its overall performance.
Mary Poppendieck is the Managing Director of the Agile Alliance, a seasoned leader in both operations and new product development with more than 25 years of IT experience. She has led teams implementing solutions ranging from enterprise supply chain management to digital media and built one of 3M's first Just-in-Time lean production systems. Mary is currently the President of Poppendieck LLC, a consulting firm specializing in bringing lean production techniques to software development.
Tom Poppendieck was creating systems to support the concurrent development of commercial airliner navigation devices as early as 1985. Even then, the aerospace industry recognized that sequential development of product design, manufacturing process design, and product support was costly and non-competitive. His subsequent experience in software product development, COTS implementation, and most recently as a coach, mentor, and enterprise architect support the same conclusion for software development.
I am incredibly grateful that you have taken the time to read this post.
Your support and engagement mean the world to me, and I truly appreciate your interest in the topics I write about.
I hope that you have found this post informative, educational and engaging.
If you are interested in reading more of my work, please visit other articles here on the website.
I promise to continue providing valuable and high-quality content for your enjoyment and education.
Thank you again for reading and I hope to see you soon!
Here are some related articles you may enjoy:
There are even more good things I've prepared for you!
Subscribe below or click here to receive new posts in your Email!
Do you want to read some book notes and recommendations? Discover more here!
Do you want to have amazing weekly content curation? Discover more here!
Ready to make a positive impact?
Support my work by sharing my content with your network.
Your simple act of kindness can reach new heights and help spread valuable information.
Want to show your support in a tangible way? A virtual coffee is a small but mighty way to show your appreciation and give me the extra energy to keep crafting valuable content!