Synopses & Reviews
Lean Software Development: An Agile Toolkit
- Adapting agile practices to your development organization
- Uncovering and eradicating waste throughout the software development lifecycle
- Practical techniques for every development manager, project manager, and technical leader
Lean software development: applying agile principles to your organization
In Lean Software Development, Mary and Tom Poppendieck identify seven fundamental "lean" principles, adapt them for 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.
- Iterating towards excellence: software development as an exercise in discovery
- Managing uncertainty: "decide as late as possible" by building change into the system.
- Compressing the value stream: rapid development, feedback, and improvement
- Empowering teams and individuals without compromising coordination
- Software with integrity: promoting coherence, usability, fitness, maintainability, and adaptability
- How to "see the whole"–even when your developers are scattered across multiple locations and contractors
Simply put, Lean Software Development helps you refocus development on value, flow, and people–so you can achieve breakthrough quality, savings, speed, and business alignment.
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' 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.
Providing a set of helpful thinking tools, this text aims to assist in translating each lean principle to agile software development practices that match the needs of your domain.
About the Author
MARY POPPENDIECK, Managing Director of the Agile Alliance (a leading non profit organization promoting agile software development), is 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 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. He currently assists organizations that need to improve their software development capabilities apply the lean principles and tools described in this book.
Table of Contents
Foreword by Jim Highsmith.
Foreword by Ken Schwaber.
1. Eliminate Waste.
The Origins of Lean Thinking. Tool 1: Seeing Waste. Partially Done Work. Extra Processes. Extra Features. Task Switching. Waiting. Motion. Defects. Management Activities. Tool 2: Value Stream Mapping. Map Your Value Stream. An Agile Value Stream Map. Try This.
2. Amplify Learning.
The Nature of Software Development. Perspectives on Quality. The Service View of Quality. Quality in Software Development. Variability. Design Cycles. Do It Right the First Time? Learning Cycles. Tool 3: Feedback. Software Development Feedback Loops. Tool 4: Iterations. Iteration Planning. Team Commitment. Convergence. Negotiable Scope. Tool 5: Synchronization. Synch and Stabilize. Spanning Application. Matrix. Tool 6: Set-Based Development. Set-Based Versus Point-Based. Set-Based Software Development. Develop Multiple Options. Communicate Constraints. Let the Solution Emerge. Try This.
3. Decide as Late as Possible.
Concurrent Development. Concurrent Software Development. Cost Escalation. Tool 7: Options Thinking. Delaying Decisions. Options. Microsoft Strategy, circa 1988. Options Thinking in Software Development. Tool 8: The Last Responsible Moment. Tool 9: Making Decisions. Depth-First Versus Breadth-First Problem Solving. Intuitive Decision Making. The Marines. Simple Rules. Simple Rules for Software Development. Try This.
4. Deliver as Fast as Possible.
Why Deliver Fast? Tool 10: Pull Systems. Manufacturing Schedules. Software Development Schedules. Software Pull Systems. Information Radiators. Tool 11: Queuing Theory. Reducing Cycle Time. Steady Rate of Arrival. Steady Rate of Service. Slack. How Queues Work. Tool 12: Cost of Delay. Product Model. Application Model. Tradeoff Decisions. Try This.
5. Empower the Team.
Beyond Scientific Management. CMM. CMMI. Tool 13: Self-Determination. The NUMMI Mystery. A Management Improvement Process. Tool 14: Motivation. Magic at 3M. Purpose. The Building Blocks of Motivation. Belonging. Safety. Competence. Progress. Long Days and Late Nights. Tool 15: Leadership. Leadership. Respected Leaders. Master Developers. The Fuzzy Front End. Where Do Master Developers Come From? Project Management. Tool 16: Expertise. Nucor. Xerox. Communities of Expertise. Standards. Try This.
6. Build Integrity In.
Integrity. Perceived Integrity. Conceptual Integrity. The Key to Integrity. Tool 17: Perceived Integrity. Model-Driven Design. Maintaining Perceived Integrity. Tool 18: Conceptual Integrity. Software Architecture Basics. Emerging Integrity. Tool 19: Refactoring. Keeping Architecture Healthy. Maintaining Conceptual Integrity. Isn't Refactoring Rework? Tool 20: Testing. Communication. Feedback. Scaffolding. As-Built. Maintenance. Try This.
7. See the Whole.
Systems Thinking. Tool 21: Measurements. Local Optimization. Why Do We Suboptimize? Superstition. Habit. Measuring Performance. Information Measurements. Tool 22: Contracts. Can There Be Trust Between Firms? But Software Is Different. The Purpose of Contracts. Fixed-Price Contracts. Time-and-Materials Contracts. Multistage Contracts. Target-Cost Contracts. Target-Schedule Contracts. Shared-Benefit Contracts. The Key: Optional Scope. Try This.
8. Instructions and Warranty.
Caution-Use Only as Directed. Instructions. Sphere of Influence. Large Company. Small Company. Special Work Environments. Troubleshooting Guide. Warranty.