Scaling Software Agility: Best Practices for Large Enterprises

Dean Leffingwell




“Companies have been implementing large agile projects for a number of years, but the ‘stigma’ of ‘agile only works for small projects’ continues to be a frequent barrier for newcomers and a rallying cry for agile critics. What has been missing from the agile literature is a solid, practical book on the specifics of developing large projects in an agile way. Dean Leffingwell’s book Scaling Software Agility fills this gap admirably. It offers a practical guide to large project issues such as architecture, requirements development, multi-level release planning, and team organization. Leffingwell’s book is a necessary guide for large projects and large organizations making the transition to agile development.”
—Jim Highsmith, director, Agile Practice, Cutter Consortium, author of Agile Project Management
“There’s tension between building software fast and delivering software that lasts, between being ultra-responsive to changes in the market and maintaining a degree of stability. In his latest work, Scaling Software Agility, Dean Leffingwell shows how to achieve a pragmatic balance among these forces. Leffingwell’s observations of the problem, his advice on the solution, and his description of the resulting best practices come from experience: he’s been there, done that, and has seen what’s worked.”
—Grady Booch, IBM Fellow

Agile development practices, while still controversial in some circles, offer undeniable benefits: faster time to market, better responsiveness to changing customer requirements, and higher quality. However, agile practices have been defined and recommended primarily to small teams. In Scaling Software Agility, Dean Leffingwell describes how agile methods can be applied to enterprise-class development.

  • Part I provides an overview of the most common and effective agile methods.
  • Part II describes seven best practices of agility that natively scale to the enterprise level.
  • Part III describes an additional set of seven organizational capabilities that companies can master to achieve the full benefits of software agility on an enterprise scale.

This book is invaluable to software developers, testers and QA personnel, managers and team leads, as well as to executives of software organizations whose objective is to increase the quality and productivity of the software development process but who are faced with all the challenges of developing software on an enterprise scale.


Table of Contents

Foreword xvii

Preface xxi

Acknowledgments xxvii

About the Author xxix

Part I: Overview of Software Agility 1

Chapter 1: Introduction to Agile Methods 5

Achieving Competitive Advantage in a Software Economy 5

Enter Agile Methods 6

Agile at Scale 7

A Look at the Methods 8

The Trend to Agile Adoption 10

Business Benefits of Software Agility 11

A Brief Look at XP, Scrum, and RUP 13

Summary 15

Chapter 2: Why the Waterfall Model Doesn’t Work 17

Problems with the Model 19

Assumptions Underlying the Model 20

Enter Corrective Actions via Agile Methods 26

Chapter 3: The Essence of XP 29

What Is XP? 29

What’s So Controversial about XP? 30

What’s So Extreme about XP? 30

The Fundamental Tenet of XP 31

The Values, Principles, and Practices of XP 33

The Process Model for XP 38

Applicability of the Method 39

Suggested Reading 40

Chapter 4: The Essence of Scrum 41

What Is Scrum? 41

The Roles in Scrum 42

The Philosophical Roots of Scrum 42

The Values, Principles, and Practices of Scrum 43

Key Practices of Scrum 44

The Fundamental Tenet of Scrum: Empirical Process Control 45

The Process Model for Scrum 46

On Scrum and Organizational Change 48

Applicability of the Method 48

Suggested Reading 49

Chapter 5: The Essence of RUP 51

What Is RUP? 51

Key Characteristics of RUP 51

Roots of RUP 52

Agile RUP Variants 60

Applicability of the Method 61

Suggested Reading 62

Chapter 6: Lean Software, DSDM, and FDD 63

Lean Software Development 63

Dynamic Systems Development Method 65

Feature-Driven Development 70

Chapter 7: The Essence of Agile 75

What Are We Changing with Agile? 75

The Heartbeat of Agile: Working Code in a Short Time Box 81

Summary 85

Chapter 8: The Challenge of Scaling Agile 87

Apparent Impediments of the Methods 88

Impediments of the Enterprise 90

Summary 94

Part II: Seven Agile Team Practices That Scale 95

Chapter 9: The Define/Build/Test Component Team 101

What Is the Define/Build/Test Component Team? 102

Eliminating the Functional Silos 104

The Roles and Responsibilities of an Agile Component Team 106

Creating Self-Organizing, Self-Managing Define/Build/Test Teams 109

Distributed Teams 114

Chapter 10: Two Levels of Planning and Tracking 115

A Generalized Agile Framework 116

Summary: Two Levels of Planning 120

Chapter 11: Mastering the Iteration 123

Iteration: The Heartbeat of Agility 123

The Standard, Two-Week Iteration? 123

Planning and Executing the Iteration 124

Iteration Planning 125

Iteration Execution 129

Iteration Tracking and Adjusting 132

Iteration Cadence Calendar 135

Chapter 12: Smaller, More Frequent Releases 139

Benefits of Small Releases 139

Defining and Scheduling the Release 141

Planning the Release 144

Release Tracking 147

The Release Roadmap 149

Agile at Scale Preview: Release Planning and Tracking in the Large 150

Chapter 13: Concurrent Testing 155

Introduction to Agile Testing 155

Agile Testing Principles 156

Unit Testing 158

Acceptance Testing 160

Component Testing 162

System and Performance Testing 162

Summary: Agile Testing Strategy in a Nutshell 164

Chapter 14: Continuous Integration 169

What Is Continuous Integration? 169

Continuous Integration 171

The Three Steps to Continuous Integration 172

What Is Continuous Integration Success? 175

Chapter 15: Regular Reflection and Adaptation 179

Iteration Retrospective 180

Release Retrospective 184

Part III: Creating the Agile Enterprise189

Chapter 16: Intentional Architecture 195

What Is Software Architecture? 195

Agile and Architecture 197

On Refactoring and Systems of Scale 201

What Are You Building? 202

An Agile Architectural Approach for Enterprise Class Systems 203

Building Architectural Runway 204

Chapter 17: Lean Requirements at Scale: Vision, Roadmap, and Just-in-Time Elaboration 213

Overview: The Requirements Pyramid 213

What’s Different About Requirements in Agile? 217

A Scalable, Agile Requirements Approach: Vision, Roadmap, and Just-in-time Elaboration 222

Summary 235

Chapter 18: Systems of Systems and the Agile Release Train 237

An Agile Component Release Schedule 238

The Agile Release Train 242

Release Train Retrospective 247

Chapter 19: Managing Highly Distributed Development 249

At Scale, All Development Is Distributed Development 249

Case Study 1. Ping Identity: The Distributed Define/Build/Test Component Team 251

Case Study 2. BMC Software, Incorporated: An Agile Transformation in a Highly Distributed, Large-Scale Enterprise 255

Emphasizing Communications 261

Tooling Infrastructure for Enterprise Agility 265

Summary 269

Chapter 20: Impact on Customers and Operations 271

The Benefits of Agile Methods to Sales and Marketing 272

Impact on Product Marketing/Product Management 273

Smaller and More Frequent Releases 275

Optimizing the Agile Release Process 276

Real Challenges and Misconceptions Regarding Agility from Real Sales and Marketing Executives 284

Chapter 21: Changing the Organization 289

Overview 289

Why Does Agile Require Organizational Change? 290

Preparing for Scrum and Agility 295

Eliminating Impediments to Software Productivity 298

An Agile Model for Executive Management 299

Rolling Out Scrum/Agile in a Large Organization 304

Summary 309

Chapter 22: Measuring Business Performance 311

Agility Measures: The Key Difference 311

Measuring Team Performance 312

On Metrics, “Process Police,” and Team Self-Assessment 318

Scaling to Organizational Performance: A Balanced Scorecard Approach 319

Agile Metrics at Scale: Implementing a Flexible, Automated, and Meaningful BSC for the Enterprise 322

Conclusion: Agility Works at Scale 325

Bibliography 327

Index 331



"多年來,公司一直在實施大型敏捷項目,但「敏捷只適用於小型項目」的「污名」仍然是新手的常見障礙,也是敏捷批評者的口號。敏捷文獻中缺少一本關於以敏捷方式開發大型項目的實用書籍,Dean Leffingwell的書籍《Scaling Software Agility》完美填補了這一空白。它提供了一個關於大型項目的實用指南,包括架構、需求開發、多層次發佈計劃和團隊組織等問題。Leffingwell的書籍對於大型項目和正在轉向敏捷開發的大型組織來說是一本必備指南。" - Jim Highsmith,敏捷實踐主任,Cutter Consortium,敏捷項目管理的作者

"在快速建立軟體和提供持久軟體之間存在著緊張關係,在對市場變化做出極速反應和保持一定程度的穩定性之間存在著緊張關係。在他的最新作品《Scaling Software Agility》中,Dean Leffingwell展示了如何在這些力量之間實現實用的平衡。Leffingwell對問題的觀察、解決方案的建議以及由此產生的最佳實踐描述來自於經驗:他曾經在那裡,做過那些事情,並看到了什麼是有效的。" - Grady Booch,IBM Fellow

敏捷開發實踐在某些圈子中仍然具有爭議,但它提供了無可否認的好處:更快的上市時間、更好的對變化的客戶需求的響應能力和更高的質量。然而,敏捷實踐主要是針對小型團隊進行定義和推薦的。在《Scaling Software Agility》中,Dean Leffingwell描述了如何將敏捷方法應用於企業級開發。




- 在軟體經濟中實現競爭優勢
- 敏捷方法的出現
- 企業級敏捷
- 方法概覽
- 敏捷採用趨勢