HAPPY BOOKSGIVING
Use code BOOKSGIVING during checkout to save 40%-55% on books and eBooks. Shop now.
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.
Also available in other formats.
Register your product to gain access to bonus material or receive a coupon.
“We need better approaches to understanding and managing software requirements, and Dean provides them in this book. He draws ideas from three very useful intellectual pools: classical management practices, Agile methods, and lean product development. By combining the strengths of these three approaches, he has produced something that works better than any one in isolation.”
–From the Foreword by Don Reinertsen, President of Reinertsen & Associates; author of Managing the Design Factory; and leading expert on rapid product development
Effective requirements discovery and analysis is a critical best practice for serious application development. Until now, however, requirements and Agile methods have rarely coexisted peacefully. For many enterprises considering Agile approaches, the absence of effective and scalable Agile requirements processes has been a showstopper for Agile adoption. In Agile Software Requirements, Dean Leffingwell shows exactly how to create effective requirements in Agile environments.
This book will help you leverage the benefits of Agile without sacrificing the value of effective requirements discovery and analysis. You’ll find proven solutions you can apply right now—whether you’re a software developer or tester, executive, project/program manager, architect, or team leader.
Foreword xxiii
Preface xxvii
Acknowledgments xxxiii
About the Author xxxv
Part I: Overview: The Big Picture 1
Chapter 1: A Brief History of Software Requirements Methods 3
Software Requirements in Context: Decades of
Predictive, Waterfall-Like Processes 5
Iterative and Incremental Processes 9
Adaptive (Agile) Processes 12
Requirements Management in Agile Is Fundamentally Different 16
Enterprise-Scale Adaptive Processes 19
Introduction to Lean Software 20
Summary 28
Chapter 2: The Big Picture of Agile Requirements 31
The Big Picture Explained 32
Big Picture: Team Level 34
Big Picture: Program Level 38
Big-Picture Elements: Portfolio Level 43
Summary 45
Chapter 3: Agile Requirements for the Team 47
Introduction to the Team Level 47
Agile Team Roles and Responsibilities 50
User Stories and the Team Backlog 55
Acceptance Tests 58
Unit Tests 60
Summary 61
Chapter 4: Agile Requirements for the Program 63
Introduction to the Program Level 63
Organizing Agile Teams at Scale 64
Vision 74
Features 75
Nonfunctional Requirements 77
The Agile Release Train 80
Roadmap 81
Summary 82
Chapter 5: Agile Requirements for the Portfolio 83
Introduction to the Portfolio Level 83
Investment Themes 84
Portfolio Management Team 85
Epics and the Portfolio Backlog 85
Epics, Features, and Stories 87
Architectural Runway and Architectural Epics 88
Summary 91
Summary of the Full, Enterprise Requirements Information Model 91
Interlude: Case Study: Tendril Platform 93
Background for the Case Study 93
System Context Diagram 95
Part II: Agile Requirements for the Team 97
Chapter 6: User Stories 99
Introduction 99
User Story Form 102
INVEST in Good User Stories 105
Splitting User Stories 111
Spikes 114
Technical Spikes and Functional Spikes 114
Story Modeling with Index Cards 116
Summary 117
Chapter 7: Stakeholders, User Personas, and User Experiences 119
Stakeholders 119
Identifying Stakeholders 122
User Personas 126
Agile and User Experience Development 129
Summary 133
Chapter 8: Agile Estimating and Velocity 135
Introduction 135
Why Estimate? The Business Value of Estimating 137
Estimating Scope with Story Points 138
Understanding Story Points: An Exercise 138
An Alternate Technique: Tabletop Relative Estimation 145
From Scope Estimates to Team Velocity 146
Caveats on the Relative Estimating Model 147
From Velocity to Schedule and Cost 148
Estimating with Ideal Developer Days 149
A Hybrid Model 151
Summary 152
Chapter 9: Iterating, Backlog, Throughput, and Kanban 155
Iterating: The Heartbeat of Agility 155
Backlog, Lean, and Throughput 169
Software Kanban Systems 179
Summary 180
Chapter 10: Acceptance Testing 183
Why Write About Testing in an Agile Requirements Book? 183
Agile Testing Overview 184
What Is Acceptance Testing? 187
Characteristics of Good Story Acceptance Tests 188
Acceptance Test-Driven Development 190
Acceptance Test Template 192
Automated Acceptance Testing 193
Unit and Component Testing 196
Summary 199
Chapter 11: Role of the Product Owner 201
Is This a New Role? 201
Perspectives on Dual Roles of Product Owner and Product Manager 202
Responsibilities of the Product Owner in the Enterprise 207
Five Essential Attributes of a Good Product Owner 218
Collaboration with Product Managers 220
Product Owner Bottlenecks: Part-Time Product Owners, Product Owner Proxies, Product Owner Teams 221
Seeding the Product Owner Role in the Enterprise 222
Summary 224
Chapter 12: Requirements Discovery Toolkit 227
The Requirements Workshop 228
Brainstorming 232
Interviews and Questionnaires 237
User Experience Mock-Ups 241
Forming a Product Council 243
Competitive Analysis 244
Customer Change Request Systems 245
Use-Case Modeling 247
Summary 247
Part III: Agile Requirements for the Program 249
Chapter 13: Vision, Features, and Roadmap 251
Vision 251
Expressing the Vision 252
Features 255
Estimating Features 257
Testing Features 260
Prioritizing Features 261
The Roadmap 271
Summary 273
Chapter 14: Role of the Product Manager 275
Product Manager, Business Analyst? 276
Responsibilities of the Product Manager in a Product Company 276
Business Responsibilities of the Role in the IT/IS Shop 278
Responsibility Summary 279
Phases of Product Management Disillusionment in the Pre-Agile Enterprise 280
Evolving Product Management in the Agile Enterprise 283
Responsibilities of the Agile Product Manager 287
Summary 297
Chapter 15: The Agile Release Train 299
Introduction to the Agile Release Train 300
Driving Strategic Alignment 304
Institutionalizing Product Development Flow 305
Designing the Agile Release Train 308
Planning the Release 308
Tracking and Managing the Release 309
Release Retrospective 310
Measuring Release Predictability 310
Releasing 313
Summary 317
Chapter 16: Release Planning 319
Preparing for Release Planning 319
Release Planning Narrative, Day 1 322
Release Planning Narrative, Day 2 328
Stretch Goals 336
Summary 338
Chapter 17: Nonfunctional Requirements 339
Modeling Nonfunctional Requirements 340
Exploring Nonfunctional Requirements 342
Persisting Nonfunctional Requirements 347
Testing Nonfunctional Requirements 348
Template for an NFR Specification 352
Summary 354
Chapter 18: Requirements Analysis Toolkit 355
Activity Diagrams 357
Sample Reports 358
Pseudocode 358
Decision Tables and Decision Trees 359
Finite State Machines 361
Message Sequence Diagrams 364
Entity-Relationship Diagrams 365
Use-Case Modeling 366
Summary 366
Chapter 19: Use Cases 367
The Problems with User Stories and Backlog Items 368
Five Good Reason to Still Use Use Cases 368
Use Case Basics 369
A Use Case Example 375
Applying Use Cases 377
Use Cases in the Agile Requirements Information Model 378
Summary 379
Part IV: Agile Requirements for the Portfolio 381
Chapter 20: Agile Architecture 383
Introduction to the Portfolio Level of the Big Picture 383
Systems Architecture in Enterprise-Class Systems 384
Eight Principles of Agile Architecture 390
Implementing Architectural Epics 399
Splitting Architecture Epics 403
Summary 405
Chapter 21: Rearchitecting with Flow 407
Architectural Epic Kanban System 408
Overview of the Architectural Epic Kanban System 409
1. The Funnel: Problem/Solution Needs Identification 412
2. Backlog 415
3. Analysis 418
4. Implementation 423
Summary 427
Chapter 22: Moving to Agile Portfolio Management 429
Portfolio Management 429
When Agile Teams Meet the PMO: Two Ships Pass in the Night 431
Legacy Mind-Sets Inhibit Enterprise Agility 432
Legacy Mind-Sets in Portfolio Management 433
Eight Recommendations for Moving to Agile Portfolio Management 436
Summary: On to Agile Portfolio Planning 447
Chapter 23: Investment Themes, Epics, and Portfolio Planning 449
Investment Themes 450
Epics 452
Identifying and Prioritizing Business Epics: A Kanban System for Portfolio Planning 456
Summary 467
Chapter 24: Conclusion 469
Further Information 470
Appendix A: Context-Free Interview 471
Appendix B: Vision Document Template 475
Appendix C: Release Planning Readiness Checklist 485
Appendix D: Agile Requirements Enterprise Backlog Meta-model 489
Bibliography 491
Index 495