Lean Software Development : An Agile Toolkit
- Paperback | 240 pages
- 181 x 234 x 12mm | 384g
- 08 May 2003
- Pearson Education (US)
- Addison-Wesley Educational Publishers Inc
- New Jersey, United States
Other books in this series
05 Oct 2000
12 Dec 2008
28 Oct 2002
Back cover copy
Mary Poppendieck Tom Poppendieck
Forewords by Jim Highsmithand Ken Schwaber
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: An Agile Toolkit
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.
Table of contents
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.
About Mary Poppendieck
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.