| |
| |
Foreword | |
| |
| |
Acknowledgments | |
| |
| |
Introduction | |
| |
| |
| |
Getting Started | |
| |
| |
| |
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 | |
| |
| |
| |
Writing Stories | |
| |
| |
Independent | |
| |
| |
Negotiable | |
| |
| |
Valuable to Purchasers or Users | |
| |
| |
Estimatable | |
| |
| |
Small | |
| |
| |
Testable | |
| |
| |
Summary | |
| |
| |
Developer Responsibilities | |
| |
| |
Customer Responsibilities | |
| |
| |
Questions | |
| |
| |
| |
User Role Modeling | |
| |
| |
User Roles | |
| |
| |
Role Modeling Steps | |
| |
| |
Two Additional Techniques | |
| |
| |
What If I Have On-Site Users? | |
| |
| |
Summary | |
| |
| |
Developer Responsibilities | |
| |
| |
Customer Responsibilities | |
| |
| |
Questions | |
| |
| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
| |
Estimating and Planning | |
| |
| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
| |
Planning an Iteration | |
| |
| |
Iteration Planning Overview | |
| |
| |
Discussing the Stories | |
| |
| |
Disaggregating into Tasks | |
| |
| |
Accepting Responsibility | |
| |
| |
Estimate and Confirm | |
| |
| |
Summary | |
| |
| |
Developer Responsibilities | |
| |
| |
Customer Responsibilities | |
| |
| |
Questions | |
| |
| |
| |
Measuring and Monitoring Velocity | |
| |
| |
Measuring Velocity | |
| |
| |
Planned and Actual Velocity | |
| |
| |
Iteration Burndown Charts | |
| |
| |
Burndown Charts During an Iteration | |
| |
| |
Summary | |
| |
| |
Developer Responsibilities | |
| |
| |
Customer Responsibilities | |
| |
| |
Questions | |
| |
| |
| |
Frequently Discussed Topics | |
| |
| |
| |
What Stories Are Not | |
| |
| |
User Stories Aren't IEEE 830 | |
| |
| |
User Stories Are Not Use Cases | |
| |
| |
User Stories Aren't Scenarios | |
| |
| |
Summary | |
| |
| |
Questions | |
| |
| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
| |
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 | |
| |
| |
| |
An Example | |
| |
| |
| |
The User Roles | |
| |
| |
The Project | |
| |
| |
Identifying the Customer | |
| |
| |
Identifying Some Initial Roles | |
| |
| |
Consolidating and Narrowing | |
| |
| |
Role Modeling | |
| |
| |
Adding Personas | |
| |
| |
| |
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 | |
| |
| |
| |
Estimating the Stories | |
| |
| |
The First Story | |
| |
| |
Advanced Search | |
| |
| |
Rating and Reviewing | |
| |
| |
Accounts | |
| |
| |
Finishing the Estimates | |
| |
| |
All the Estimates | |
| |
| |
| |
The Release Plan | |
| |
| |
Estimating Velocity | |
| |
| |
Prioritizing the Stories | |
| |
| |
The Finished Release Plan | |
| |
| |
| |
The Acceptance Tests | |
| |
| |
The Search Tests | |
| |
| |
Shopping Cart Tests | |
| |
| |
Buying Books | |
| |
| |
User Accounts | |
| |
| |
Administration | |
| |
| |
Testing the Constraints | |
| |
| |
A Final Story | |
| |
| |
| |
Appendices | |
| |
| |
| |
An Overview of Extreme Programming | |
| |
| |
Roles | |
| |
| |
The Twelve Practices | |
| |
| |
XP's Values | |
| |
| |
The Principles of XP | |
| |
| |
Summary | |
| |
| |
| |
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 | |