Lean Software Development: Principles and Practices
Lean software engineering emphasizes continuous delivery of high-quality applications. Ken Pugh explains the basic principles and practices of lean software development, concentrating on developing a continuous flow by eliminating delays and loopbacks; delivering quickly by developing in small batches; emphasizing high quality which decreases delays due to defect repair; making policies, process, and progress transparent; optimizing the whole rather than individual steps; and becoming more efficient by decreasing waste. Ken describes lean’s emphasis on cycle time rather than resource utilization and demonstrates the value stream map which helps in visualizing the development cycle flow to identify bottlenecks. He explores the differences between push and pull flow, describes how lean thinking shows up in agile processes including Scrum and Extreme Programming, and discusses how lean can be applied to the entire workflow—not just to development. Ken concludes with a discussion of how you can begin your lean transformation.