SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
“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.
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.
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
Problems with the Model 19
Assumptions Underlying the Model 20
Enter Corrective Actions via Agile Methods 26
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
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
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
Lean Software Development 63
Dynamic Systems Development Method 65
Feature-Driven Development 70
What Are We Changing with Agile? 75
The Heartbeat of Agile: Working Code in a Short Time Box 81
Summary 85
Apparent Impediments of the Methods 88
Impediments of the Enterprise 90
Summary 94
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
A Generalized Agile Framework 116
Summary: Two Levels of Planning 120
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
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
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
What Is Continuous Integration? 169
Continuous Integration 171
The Three Steps to Continuous Integration 172
What Is Continuous Integration Success? 175
Iteration Retrospective 180
Release Retrospective 184
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
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
An Agile Component Release Schedule 238
The Agile Release Train 242
Release Train Retrospective 247
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
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
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
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