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
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
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.
“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