Contents
Foreword
Acknowledgments
Introduction
PART I: Getting Started
Chapter 1: An Overview
What Is a User Story?
Where Are the Details?
“How Long Does It Have to Be?”
The Customer Team
What Will the Process Be Like?
Planning Releases and Iterations
What Are Acceptance Tests?
Why Change?
Summary
Questions
Chapter 2: Writing Stories
Independent
Negotiable
Valuable to Purchasers or Users
Estimatable
Small
Testable
Summary
Developer Responsibilities
Customer Responsibilities
Questions
Chapter 3: User Role Modeling
User Roles
Role Modeling Steps
Two Additional Techniques
What If I Have On-Site Users?
Summary
Developer Responsibilities
Customer Responsibilities
Questions
Chapter 4: Gathering Stories
Elicitation and Capture Should Be Illicit
A Little Is Enough, or Is It?
Techniques
User Interviews
Questionnaires
Observation
Story-Writing Workshops
Summary
Developer Responsibilities
Customer Responsibilities
Questions
Chapter 5: Working with User Proxies
The Users’ Manager
A Development Manager
Salespersons
Domain Experts
The Marketing Group
Former Users
Customers
Trainers and Technical Support
Business or Systems Analysts
What to Do When Working with a User Proxy
Can You Do It Yourself?
Constituting the Customer Team
Summary
Developer Responsibilities
Customer Responsibilities
Questions
Chapter 6: Acceptance Testing User Stories
Write Tests Before Coding
The Customer Specifies the Tests
Testing Is Part of the Process
How Many Tests Are Too Many?
The Framework for Integrated Test
Types of Testing
Summary
Developer Responsibilities
Customer Responsibilities
Questions
Chapter 7: Guidelines for Good Stories
Start with Goal Stories
Slice the Cake
Write Closed Stories
Put Constraints on Cards
Size the Story to the Horizon
Keep the UI Out as Long as Possible
Some Things Aren’t Stories
Include User Roles in the Stories
Write for One User
Write in Active Voice
Customer Writes
Don’t Number Story Cards
Don’t Forget the Purpose
Summary
Questions
PART II: Estimating and Planning
Chapter 8: Estimating User Stories
Story Points
Estimate as a Team
Estimating
Triangulate
Using Story Points
What If We Pair Program?
Some Reminders
Summary
Developer Responsibilities
Customer Responsibilities
Questions
Chapter 9: Planning a Release
When Do We Want the Release?
What Would You Like in It?
Prioritizing the Stories
Mixed Priorities
Risky Stories
Prioritizing Infrastructural Needs
Selecting an Iteration Length
From Story Points to Expected Duration
The Initial Velocity
Creating the Release Plan
Summary
Developer Responsibilities
Customer Responsibilities
Questions
Chapter 10: Planning an Iteration
Iteration Planning Overview
Discussing the Stories
Disaggregating into Tasks
Accepting Responsibility
Estimate and Confirm
Summary
Developer Responsibilities
Customer Responsibilities
Questions
Chapter 11: Measuring and Monitoring Velocity
Measuring Velocity
Planned and Actual Velocity
Iteration Burndown Charts
Burndown Charts During an Iteration
Summary
Developer Responsibilities
Customer Responsibilities
Questions
PART III: Frequently Discussed Topics
Chapter 12: What Stories Are Not
User Stories Aren’t IEEE 830
User Stories Are Not Use Cases
User Stories Aren’t Scenarios
Summary
Questions
Chapter 13: Why User Stories?
Verbal Communication
User Stories Are Comprehensible
User Stories Are the Right Size for Planning
User Stories Work for Iterative Development
Stories Encourage Deferring Detail
Stories Support Opportunistic Development
User Stories Encourage Participatory Design
Stories Build Up Tacit Knowledge
Why Not Stories?
Summary
Developer Responsibilities
Customer Responsibilities
Questions
Chapter 14: A Catalog of Story Smells
Stories Are Too Small
Interdependent Stories
Goldplating
Too Many Details
Including User Interface Detail Too Soon
Thinking Too Far Ahead
Splitting Too Many Stories
Customer Has Trouble Prioritizing
Customer Won’t Write and Prioritize the Stories
Summary
Developer Responsibilities
Customer Responsibilities
Questions
Chapter 15: Using Stories with Scrum
Scrum Is Iterative and Incremental
The Basics of Scrum
The Scrum Team
The Product Backlog
The Sprint Planning Meeting
The Sprint Review Meeting
The Daily Scrum Meeting
Adding Stories to Scrum
A Case Study
Summary
Questions
Chapter 16: Additional Topics
Handling NonFunctional Requirements
Paper or Software?
User Stories and the User Interface
Retaining the Stories
Stories for Bugs
Summary
Developer Responsibilities
Customer Responsibilities
Questions
PART IV: An Example
Chapter 17: The User Roles
The Project
Identifying the Customer
Identifying Some Initial Roles
Consolidating and Narrowing
Role Modeling
Adding Personas
Chapter 18: The Stories
Stories for Teresa
Stories for Captain Ron
Stories for a Novice Sailor
Stories for a Non-Sailing Gift Buyer
Stories for a Report Viewer
Some Administration Stories
Wrapping Up
Chapter 19: Estimating the Stories
The First Story
Advanced Search
Rating and Reviewing
Accounts
Finishing the Estimates
All the Estimates
Chapter 20: The Release Plan
Estimating Velocity
Prioritizing the Stories
The Finished Release Plan
Chapter 21: The Acceptance Tests
The Search Tests
Shopping Cart Tests
Buying Books
User Accounts
Administration
Testing the Constraints
A Final Story
PART V: Appendices
Appendix A: An Overview of Extreme Programming
Roles
The Twelve Practices
XP’s Values
The Principles of XP
Summary
Appendix B: Answers to Questions
Chapter 1, An Overview
Chapter 2, Writing Stories
Chapter 3, User Role Modeling
Chapter 4, Gathering Stories
Chapter 5, Working with User Proxies
Chapter 6, Acceptance Testing User Stories
Chapter 7, Guidelines for Good Stories
Chapter 8, Estimating User Stories
Chapter 9, Planning a Release
Chapter 10, Planning an Iteration
Chapter 11, Measuring and Monitoring Velocity
Chapter 12, What Stories Are Not
Chapter 13, Why User Stories?
Chapter 14, A Catalog of Story Smells
Chapter 15, Using Stories with Scrum
Chapter 16, Additional Topics
References
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X