Scaling Software Agility: Best Practices for Large Enterprises
暫譯: 擴展軟體敏捷性:大型企業的最佳實踐

Dean Leffingwell

買這商品的人也買了...

相關主題

商品描述

Description

“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敏捷實踐總監,《Agile Project Management》作者

「在快速構建軟體和交付持久軟體之間,在對市場變化的超高反應能力和保持一定穩定性之間存在緊張關係。在他最新的作品《Scaling Software Agility》中,Dean Leffingwell展示了如何在這些力量之間實現務實的平衡。Leffingwell對問題的觀察、對解決方案的建議以及對最佳實踐的描述都來自於經驗:他親身經歷過,並看到了有效的方法。」
—Grady Booch,IBM Fellow

敏捷開發實踐雖然在某些圈子中仍具爭議,但其帶來的好處不容忽視:更快的上市時間、更好地響應不斷變化的客戶需求以及更高的質量。然而,敏捷實踐主要是針對小型團隊進行定義和推薦。在《Scaling Software Agility》中,Dean Leffingwell描述了如何將敏捷方法應用於企業級開發。

- 第一部分提供了最常見和有效的敏捷方法概述。
- 第二部分描述了七個本質上可擴展到企業級的敏捷最佳實踐。
- 第三部分描述了公司可以掌握的七個額外組織能力,以在企業規模上實現軟體敏捷性的全部好處。

這本書對於軟體開發人員、測試人員和質量保證人員、經理和團隊負責人,以及那些希望提高軟體開發過程的質量和生產力但面臨企業級開發挑戰的軟體組織高層來說,都是無價的。

**目錄**

前言 xvii
序言 xxi
致謝 xxvii
關於作者 xxix
第一部分:軟體敏捷概述 1
第一章:敏捷方法介紹 5
在軟體經濟中獲得競爭優勢 5
進入敏捷方法 6
大規模敏捷 7
方法概覽 8
敏捷採用的趨勢 10
軟體敏捷的商業好處 11
XP、Scrum和RUP簡介 13
總結 15
第二章:為什麼瀑布模型無法運作 17
模型的問題 19
模型的假設 20
通過敏捷方法進行糾正行動 26
第三章:XP的本質 29
什麼是XP? 29
XP有什麼爭議? 30
XP有什麼極端之處? 30
XP的基本信條 31
XP的價值觀、原則和實踐 33
XP的過程模型 38
方法的適用性 39
建議閱讀 40
第四章:Scrum的本質 41
什麼是Scrum? 41
Scrum中的角色 42
Scrum的哲學根源 42
Scrum的價值觀、原則和實踐 43
Scrum的關鍵實踐 44
Scrum的基本信條:經驗過程控制 45
Scrum的過程模型 46
關於Scrum和組織變革 48
方法的適用性 48
建議閱讀 49
第五章:RUP的本質 51
什麼是RUP? 51
RUP的主要特徵 51
RUP的根源 52
敏捷RUP變體 60
方法的適用性 61
建議閱讀 62
第六章:精益軟體、DSDM和FDD 63
精益軟體開發 63
動態系統開發方法 65
特徵驅動開發 70
第七章:敏捷的本質 75
我們用敏捷改變了什麼? 75
敏捷的心跳:在短時間內交付可運行的代碼 81
總結 85
第八章:擴展敏捷的挑戰 87
方法的明顯障礙 88
企業的障礙 90
總結 94
第二部分:七個可擴展的敏捷團隊實踐 95
第九章:定義/構建/測試組件團隊 101
什麼是定義/構建/測試組件團隊? 102
消除功能孤島 104
敏捷組件團隊的角色和責任 106
創建自組織、自管理的定義/構建/測試團隊 109
分散團隊 114
第十章:兩級規劃和跟蹤 115
通用敏捷框架 116
總結:兩級規劃 120
第十一章:掌握迭代 123
迭代:敏捷的心跳 123
標準的兩週迭代? 123
規劃和執行迭代 124
迭代規劃 125
迭代執行 129
迭代跟蹤和調整 132
迭代節奏日曆 135
第十二章:更小、更頻繁的發佈 139
小型發佈的好處 139
定義和安排發佈 141
發佈規劃 144
發佈跟蹤 147
發佈路線圖 149
大規模敏捷預覽:大型發佈規劃和跟蹤 150
第十三章:並行測試 155
敏捷測試介紹 155
敏捷測試原則 156
單元測試 158
驗收測試 160
組件測試 162
系統和性能測試 162
總結:敏捷測試策略概述 164
第十四章:持續整合 169
什麼是持續整合? 169
持續整合 171
持續整合的三個步驟 172
什麼是持續整合的成功? 175
第十五章:定期反思和調整 179
迭代回顧 180
發佈回顧 184
第三部分:創建敏捷企業 189
第十六章:有意識的架構 195
什麼是軟體架構? 195
敏捷與架構 197
關於重構和規模系統 201
你在建造什麼? 202
企業級系統的敏捷架構方法 203
建立架構跑道 204
第十七章:大規模精益需求:願景、路線圖和即時細化 213
概述:需求金字塔 213
敏捷中的需求有什麼不同? 217
可擴展的敏捷需求方法:願景、路線圖和即時細化 222