|
Scaling Software Agility: Best Practices for Large Enterprises
The trend to agile and even extreme development practices is the most significant dynamic in software development since the invention of the waterfall model. While still controversial in some circles, the benefits of agility, including faster time to market, better responsiveness to changing customer requirements, and higher quality are undeniable
to those who have mastered these practices. Agile practices, however, have been defined and recommended primarily to small teams where co-location, ready access to customers, and small team size are the defining rule.
Are the benefits of agility to be denied to those larger software enterprises who don't share these simple paradigms? Are larger companies forever relegated to delay-prone, big bang, waterfall failures? Or can these innovative new practices be applied to large-scale development requiring coordination of 100 or even 1,000 team members to achieve?
In Scaling Software Agility, Dean Leffingwell describes the application of agile methods to enterprise class development. Part I of this book 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.
Scaling Software Agility will be invaluable to software developers, testers and QA personnel, managers, and 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.
CONTENTS:
Foreword xviiPreface xxiAcknowledgments xxviiAbout the Author xxixPart I: Overview of Software Agility 1Chapter 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 95Chapter 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 Enterprise189Chapter 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 325Bibliography 327Index 331
|