ISBN | Product | Product | Price CHF | Available | |
---|---|---|---|---|---|
Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise |
9780321635846 Agile Software Requirements: Lean Requirements Practices for Teams, Programs, and the Enterprise |
64.10 |
![]() |
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.
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
Dean Leffingwell, a thirty-year software industry veteran, has spent his career helping software teams achieve their goals. A renowned methodologist, author, coach, entrepreneur, and executive, he founded Requisite, Inc., makers of RequisitePro, and served as its CEO. As vice president at Rational Software (now part of IBM), he led the commercialization of the Rational Unified Process. As an independent consultant and as an advisor to Rally Software, he has helped entrepreneurial teams and large, distributed, multinational corporations implement Agile methods at scale. He is the author of Scaling Software Agility: Best Practices for Large Enterprises (Addison-Wesley, 2007) and is the lead author of Managing Software Requirements, Second Edition (Addison-Wesley, 2003), which has been translated into five languages.
Praise for Agile Software Requirements
“In my opinion, there is no book out there that more artfully addresses the specific needs of agile teams, programs, and portfolios all in one. I believe this book is an organizational necessity for any enterprise.”
-Sarah Edrie, Director of Quality Engineering, Harvard Business School
“Agile Software Requirements and Mr. Leffingwell's teachings have been very influential and inspiring to our organization. They have allowed us to make critical cultural changes to the way we approach software development by following the framework he's outlined here. It has been an extraordinary experience.”
-Chris Chapman, Software Development Manager, Discount Tire
“This book supplies empirical wisdom connected with strong and very well-structured theory of succeeding with software projects of different scales. People new to agile, practitioners, or accomplished agilists-we all were waiting for such a book.”
-Oleksandr (Alex) Yakyma, Agile Consultant, www.enter-Agile.com
“This book presents practical and proven agile approaches for managing software requirements for a team, collaborating teams of teams, and all across the enterprise. However, this is not only a great book on agile requirements engineering; rather, Leffingwell describes the bigger picture of how the enterprise can achieve the benefits of business agility by implementing lean product development flow. His 'Big Picture' of agile requirements is an excellent reference for any organization pursuing an intrinsically lean software development operational mode. Best of all, we've applied many of these principles and practices at Nokia (and even helped create some of them), and therefore we know they work.
-Juha-Markus Aalto, Agile Change Program Manager, Nokia Corporation
“This pragmatic, easy-to-understand, yet thought-provoking book provides a hands-on guide to addressing a key problem that enterprises face: How to make requirements practices work effectively in large-scale agile environments. Dean Leffingwell's focus on lean principles is refreshing and much needed!”
-Per Kroll, author, and Chief Architect for Measured Improvements, IBM
“Agile programming is a fluid development environment. This book serves as a good starting point for learning.”
-Brad Jackson, SAS Institute Inc.
“Dean Leffingwell captures the essence of agile in its entirety, all the way from the discrete user story in the 'trenches' to complex software portfolios at the enterprise level. The narrative balances software engineering theory with pragmatic implementation aspects in an easy-to-understand manner. It is a book that demands to be read in a single sitting.”
-Israel Gat, http://theAgileexecutive.com, @Agile_exec on Twitter
“An incredibly complete, clear, concise, and pragmatic reference for agile software development. Much more than mere guidelines for creating requirements, building teams, and managing projects, this reference work belongs on the bookshelf of anyone and everyone involved with not only agile processes but software development in general.”
-R.L. Bogetti, Lead System Designer, Baxter Healthcare
“This book covers software requirements from the team level to program and portfolio levels, including the architecture management and a consistent framework for the whole enterprise. We have practiced the multi-team release planning and the enterprise-level architecture work with kanban and achieved instant success in our organization. Combining the principles of the product development flow with the current large-scale agile and lean software development is a really novel concept. Well worth reading and trying out the ideas here.”
-Santeri Kangas, Chief Software Architect, and Gabor Gunyho, Lean Change Agent, F-Secure Corp.
“Dean Leffingwell and his Agile Release Train (ART) concept guides us from teamlevel agile to enterprise-level agile. The ART concept is a very powerful tool in planning and managing large software programs and helps to identify and solve potential organizational roadblocks-early.”
-Markku Lukkarinen, Head of Programs, Nokia Siemens Networks