Lean-Agile Software Development: Achieving Enterprise Agility

Alan Shalloway / Guy Beaver / James R. Trott  
Total pages
October 2009
Related Titles

Product detail

Title no longer available

Table of Contents

Series Foreword xvii

Preface xxi

Acknowledgments xxv

About the Authors xxvii

Introduction xxix

How This Book Will Help You xxx

The Roots of Agility xxx

The Software Development Pendulumxxx

Principles and Paradigms xxxiii

A Pragmatic Approach xxxiv

Critique the Process, Work Together xxxiv

Lean Provides the Way Forward xxxv

Evaluating Paradigms xxxvi

We Do Not Know It All xxxviii

Lean Provides More than Beliefs xxxix

Going beyond Lean xl

Summary xl

Try This xli


PART I Extending Our View beyond Projects 1


What Is Software Development? 1

The Software Development Team and Flow 2


Chapter 1 An Agile Developer’s Guide to Lean Software Development 5


Lean 5

Lean Applies to Many Levels of the Organization 6

A Quick Review of Some Lean Principles 7

Look to Your Systems for the Source of Your Errors 8

Respect People 9

Minimizing Complexity and Rework 10

Eliminating Waste and Deferring Commitment 10

Using Iterative Development to Minimize Complexity and Rework 12

Create Knowledge 12

Deliver Early and Often 13

Build Quality In 14

Optimize the Whole 14

Fast-Flexible-Flow 14

Focus on Time 15

Reflections on Just-In-Time (JIT) 16

Value Stream Mapping 18

Using Value Stream Mapping to Get to True Root Cause 18

The Results 21

Lean Goes beyond Agile 22

Summary 22

Try This 23

Recommended Reading 23


Chapter 2 The Business Case for Agility 25


The Benefits of Agile 26

Add Value to the Business Quickly 26

Help Clarify Customers’ Needs 31

Promote Knowledge-Based Product Development and Better Project Management 34

Focus on Product-Centered Development 38

Improve Team Efficiency 38

Summary 39

Try This 39

Recommended Reading 40


Chapter 3 The Big Picture 41


Getting to Enterprise Agility 42

 How to Create Real Value for an Organization 44

Identify Value 44

Manage the Organization’s Resources 45

Manage Projects 48

Proper Software Engineering 49

Summary 50

Try This 50

Recommended Reading 51


Chapter 4 Lean Portfolio Management 53


The Challenge of Selecting Projects 54

Introducing Terms 54

Project Portfolios 56

Project Portfolios Are Idea Inventories 56

Should We Avoid Delays by Batching Project Analysis? 57

Should We Avoid Delays by Increasing Releases? 58

Lean Portfolio Management 58

Why It Works 59

It Is OK to Plan Releases 60

With Existing Systems, Plan to Use Incremental Delivery 60

The Benefits of Lean Portfolio Management 61

Speed and Quality 61

Line of Sight to Business Needs 62

Minimizing Work-in-Process 62

Minimizing Interruptions 63

The Approach 63

Shorter Planning Cycles 67

Estimating and Tracking Progress 68

Summary 70

Try This 70

Recommended Reading 71


PART II Lean Project Management 73


Lean Provides Guidance 73


Chapter 5 Going beyond Scrum 77


Learning a New Way 78

Defining a Method While Not Being Restricted by It 79

Defining a Process 79

Principles and Practices Open the Door for Professionalism 81

Knowing Where You Are 82

Scrum Is a Framework 83

Misunderstandings, Inaccurate Beliefs, and Limitations of Scrum 84

Misunderstandings Commonly Held by New Scrum Practitioners 85

Scrum Beliefs We Think Are Incorrect 85

Limitations of Scrum That Must Be Transcended 89

Unfortunate Consequences of These Beliefs 91

Lean Thinking Provides the Necessary Foundation 92

Introducing Scrum#–Scrum Embedded in Lean Thinking 92

Introducing Kanban Software Engineering 96

Managing the Work in the Kanban Team 98

Advantages of Kanban 100

Selecting an Approach 103

Summary 106

Try This 106

Recommended Reading 107


Chapter 6 Iteration 0: Preparing for the First Iteration 109


Getting Ready for Iteration 1 110

Set Up the Product 111

Set Up the Team 111

Set Up the Environment 112

Set Up the Architecture 113

Iteration 0 Checklist 113

Summary 115

Try This 115


Chapter 7 Lean-Agile Release Planning 117


Issues that Affect Planning 118

Evaluating Processes 118

Transparent and Continuous Planning 120

Releases and Elevations 124

Example: Release Planning Session 124

1. Identify Features 126

2. Prioritize Features, Left to Right 126

3. Split Features Using the MMF Perspective 126

4. Estimate the Value of Features 126

5. Estimate the Cost of Features 128

6. Elaborate Features 128

7. Create the Release Plan 129

8. Plan the Elevations 132

A Few Notes 135

On Estimation and Risk 135

Pareto versus Parkinson 135

Summary 136

Try This 136

Recommended Reading 136


Chapter 8 Visual Controls and Information Radiators for Enterprise Teams 137


Visual Controls and Information Radiators 138

Lean-Agile Visual Controls 139

Product Vision: Providing the Big Picture 140

Product Backlog with Release Plan 141

Iteration Backlog 142

The Visual Control for Multiple Teams 146

Establishing Clear Line of Sight 148

Managing Dependencies with Visual Controls 150

Burn-Down and Burn-Up Charts 152

The Impediment List 153

How to Tell If You Have a Good Visual Control 153

Summary 154

Try This 154

Recommended Reading 155


Chapter 9 The Role of Quality Assurance in Lean-Agile Software Development 157


Introduction 158

QA at the End of the Cycle Is Inherently Wasteful 160

Improve Results by Moving QA Up Front 161

When the Product Champion Will Not Answer Your Questions 163

Executable Specifications and Magic Documentation 165

Acceptance Test-Driven Development 166

Summary 167

Try This 167

Recommended Reading 168


Chapter 10 Becoming an Agile Enterprise 169


Where Do You Want to Go? 170

What Gets in the Way? 170

Guidelines for the Transition 172

Where Do You Start? 173

The Product Company 174

The IT Company 178

The IT Product Company 178

The Importance of Continuous Process Improvement 179

Summary 179

Try This 180


Chapter 11 Management’s Role in Lean-Agile Development 181


Lean-Agile Management 182

Creating the Environment 183

Lean-Agile’s Balanced Approach to Management 184

Create Knowledge within the Team 185

Get to the Root Cause 186

Agile Software Development Is Not Anarchy 187

Lack of Management May Equal Lack of Success 189

Improving Management with Lean Thinking 190

Summary 191

Try This 191

Recommended Reading 192


Chapter 12 The Product Coordination Team 193


Getting Teams to Work Together 194

Scrum-of-Scrums 194

The Challenge of Coordinating Teams 195

The Product Coordination Team 198

Product Coordination Team Membership 199

Product Coordination Team Guidelines 200

Mentoring 202

Summary 202

Try This 202


Chapter 13 Software Architecture and Design’s Role in Lean-Agile Software Development 203


Avoiding Over- and Under-Design 204

Designing for Change 206

The Role of Design in Software 207

The Role of Management in Software Design 208

Summary 208

Try This 208

Recommended Reading 209


PART III Looking Back, Looking Forward 211


Chapter 14 Seeing Lean 213


Toyota: The First Great Example of Lean 214

Three Bodies of Lean 216

Lean Science 217

Lean Management 218

Lean Knowledge Stewardship 218

Insights from Lean-Agile Coaches 219

Focusing on One Project at a Time 219

Initiating Fewer Projects Instead of Imploring Teams to Work Better 219

Shortening Batch Times 220

Getting to the Root Cause 220

Knowing Where You Are: Minimum Releasable Features 221

Priorities and Work-in-Process 221

Productivity and Quality 222

Cross-functional Teams 222

The Mantra of Lean: Fast-Flexible-Flow 223

An Example of Fast-Flexible-Flow 224

Next Steps 227

User Groups of Interest 228

Books to Read 228

Other Resources 230

Summary 230

Try This 230


Appendix A: Team Estimation Game 233

Appendix B: A Model of Lean-Agile Software Development 237

Bibliography 245

Index 249



Back Cover

Agile techniques have demonstrated immense potential for developing more effective, higher-quality software. However,scaling these techniques to the enterprise presents many challenges. The solution is to integrate the principles and practices of Lean Software Development with Agile's ideology and methods. By doing so, software organizations leverage Lean's powerful capabilities for “optimizing the whole” and managing complex enterprise projects.


A combined “Lean-Agile” approach can dramatically improve both developer productivity and the software's business value.In this book, three expert Lean software consultants draw from their unparalleled experience to gather all the insights, knowledge, and new skills you need to succeed with Lean-Agile development.


Lean-Agile Software Development shows how to extend Scrum processes with an Enterprise view based on Lean principles. The authors present crucial technical insight into emergent design, and demonstrate how to apply it to make iterative development more effective. They also identify several common development “anti-patterns” that can work against your goals, and they offer actionable, proven alternatives.


Lean-Agile Software Development shows how to


  • Transition to Lean Software Development quickly and successfully
  • Manage the initiation of product enhancements
  • Help project managers work together to manage product portfolios more effectively
  • Manage dependencies across the software development organization and with its partners and colleagues
  • Integrate development and QA roles to improve quality and eliminate waste
  • Determine best practices for different software development teams


The book's companion Web site, www.netobjectives.com/lasd, provides updates, links to related materials, and support
for discussions of the book's content.


Alan Shalloway is the founder and CEO of Net Objectives. With almost 40 years of experience, Alan is an industry thought leader. He helps companies transition to Lean and Agile methods enterprise-wide as well teaches courses in Lean, Kanban, Scrum, Design Patterns, and Object-Orientation. Alan has developed training and coaching methods for Lean-Agile that have helped his clients achieve long-term, sustainable productivity gains. He is a popular speaker at prestigious conferences worldwide. He is the primary author of Design Patterns Explained: A New Perspective on Object-Oriented Design, Lean-Agile Pocket Guide for Scrum Teams, Lean-Agile Software Development: Achieving Enterprise Agility and is currently writing Essential Skills for the Agile Developer. He has a Master of Science in Computer Science from MIT as well as a Master of Science in Mathematics from Emory University.

Guy Beaver is Vice-President, Enterprise Engagements and a senior consultant for Net Objectives. He is a technology executive with a track record of success in Lean-Agile implementations in large, mid-sized, and start-up organizations. He is a recognized expert in Lean, Agile, and Scrum technical development with a proven ability to lead, manage, and motivate organizations to realize significant productivity and quality improvements. He has over 25 years of experience in Software Engineering and IT across several industries including financial services, defense, and healthcare. Guy has a Master of Science in Physics from Wake Forest University.

James R. Trott is a senior consultant for Net Objectives. He has used object-oriented and pattern-based analysis techniques throughout his 20-year career in knowledge management and knowledge engineering. He is the co-author of Design Patterns Explained: A New Perspective on Object-Oriented Design, Lean-Agile Software Development: Achieving Enterprise Agility, and the Lean-Agile Pocket Guide for Scrum Teams. He is a trainer and coach in the area of reflective practices, knowledge management, and process improvement and is a knowledge management consultant for international relief and development agencies. He has a Master of Science in Applied Mathematics and a Master of Business Administration from the University of Oklahoma and a Master of Arts in Intercultural Studies from Hope International University. An Associate Technical Fellow of a large aerospace company, he has also worked in the energy industry, banking and finance, software development, and artificial intelligence.

Reader Review(s)

“This book is a timely addition to our Agile body of knowledge. Very little has been said to date about how we scale Agile software projects beyond the single team. The authors do an excellent job of explaining the foundations of Lean thinking and how these concepts can be applied across the enterprise. Lean is the key to scaling Agile projects, and this book provides the foundational knowledge you need to make it happen.”

-Mike Cottmeyer, product consultant and Agile evangelist, VersionOne


“The book brings a pragmatic approach to the difficult transition from early adoption of Agile practices to enabling product development. It is thought provoking in the context of the teams I am currently coaching, and it highlights a number of areas for improvement. I would recommend this book to anyone who is coaching an enterprise-wide Lean-Agile transformation.”

-Kay Johnson, PMP, Agile development consultant and project manager


“The ideas from the Toyota Production System and Lean manufacturing in general are gradually making their way into the world of software development, and this book provides both a gentle introduction to those unfamiliar with Agile/Lean as well as more advanced material for those who are already practitioners in this area. Worth reading.”

-Mark Needham, application developer, ThoughtWorks


“For a good few years, when asking why Agile approaches work, we got the response 'It's empirical. We tried things and kept the ones that worked.' Now people have applied theory from the Lean body of knowledge, and it tells us why Agile approaches work. Using this theory, we can make well-reasoned choices about what changes to our ways of working would be improvements, overall. This book is about this synergy between Lean and Agile. For those who believe in magic, find an empirical guru to believe. For the rationalists among us, here's a good book for you.”

-Paul Oldfield, Capgemini


“This book is a worthy roadmap to a successful adoption of Lean-Agile development and management. You can see in every detail the authors have on-the-job experience. The way they write shows their enthusiasm for Lean, and this motivates the reader to follow the principles and practices in the book. I had a great time reading this book and I am using it daily as a reference.”

-Domingo Chabalgoit , independent IT consultant


“There are many sources of information for Agile software development and Lean systems thinking. Until now, attempts to merge the two have often resulted in frustration, delays, quality issues, and budget overruns. Lean-Agile Software Development is the roadmap to achieving success using Lean-Agile techniques and applying them throughout the enterprise and product-development life cycle.”

-Bob Bogetti, lead system designer, Baxter Healthcare