User Stories Applied: For Agile Software Development

Front Cover
Addison-Wesley Professional, 2004 - Computers - 268 pages

Thoroughly reviewed and eagerly anticipated by the agile community, User Stories Applied offers a requirements process that saves time, eliminates rework, and leads directly to better software.

The best way to build software that meets users' needs is to begin with "user stories" simple, clear, brief descriptions of functionality that will be valuable to real users. In User Stories Applied, Mike Cohn provides you with a front-to-back blueprint for writing these user stories and weaving them into your development lifecycle.

You'll learn what makes a great user story, and what makes a bad one. You'll discover practical ways to gather user stories, even when you can't speak with your users. Then, once you've compiled your user stories, Cohn shows how to organize them, prioritize them, and use them for planning, management, and testing.

  • User role modeling: understanding what users have in common, and where they differ
  • Gathering stories: user interviewing, questionnaires, observation, and workshops
  • Working with managers, trainers, salespeople and other "proxies"
  • Writing user stories for acceptance testing
  • Using stories to prioritize, set schedules, and estimate release costs
  • Includes end-of-chapter practice questions and exercises

User Stories Applied will be invaluable to every software developer, tester, analyst, and manager working with any agile method: XP, Scrum... or even your own home-grown approach.

From inside the book

Contents

Getting Started
xxi
An Overview
1
Where Are the Details?
3
How Long Does It Have to Be?
5
The Customer Team
6
Planning Releases and Iterations
8
What Are Acceptance Tests?
10
Why Change?
11
Developer Responsibilities
125
Frequently Discussed Topics
129
What Stories Are Not
131
User Stories Are Not Use Cases
135
User Stories Arent Scenarios
139
Summary
141
Why User Stories?
143
User Stories Are Comprehensible
146

Summary
13
Writing Stories
15
Negotiable
16
Valuable to Purchasers or Users
18
Estimatable
20
Small
21
Testable
25
Summary
26
Questions
27
User Role Modeling
29
Role Modeling Steps
31
Two Additional Techniques
35
What If I Have OnSite Users?
37
Summary
38
Customer Responsibilities
39
Gathering Stories
41
Techniques
43
Questionnaires
45
Observation
46
StoryWriting Workshops
47
Summary
50
Developer Responsibilities
51
Working with User Proxies
53
A Development Manager
55
Domain Experts
56
The Marketing Group
57
Trainers and Technical Support
59
Can You Do It Yourself?
61
Summary
62
Developer Responsibilities
63
Questions
64
Acceptance Testing User Stories
65
Write Tests Before Coding
66
The Customer Specifies the Tests
67
How Many Tests Are Too Many?
68
Types of Testing
70
Summary
71
Questions
72
Guidelines for Good Stories
73
Write Closed Stories
74
Put Constraints on Cards
75
Size the Story to the Horizon
76
Keep the UI Out as Long as Possible
77
Some Things Arent Stories
78
Write for One User
79
Dont Number Story Cards
80
Questions
81
Estimating and Planning
83
Estimating User Stories
85
Triangulate
88
Using Story Points
89
What If We Pair Program?
90
Some Reminders
91
Summary
92
Customer Responsibilities
93
Planning a Release
95
Prioritizing the Stories
97
Mixed Priorities
98
Risky Stories
99
Selecting an Iteration Length
101
The Initial Velocity
102
Creating the Release Plan
103
Summary
104
Customer Responsibilities
105
Planning an Iteration
107
Disaggregating into Tasks
109
Accepting Responsibility
111
Summary
113
Customer Responsibilities
114
Measuring and Monitoring Velocity
115
Planned and Actual Velocity
117
Iteration Burndown Charts
119
Burndown Charts During an Iteration
121
Summary
124
User Stories Work for Iterative Development
147
Stories Encourage Deferring Detail
148
Stories Support Opportunistic Development
149
User Stories Encourage Participatory Design
150
Stories Build Up Tacit Knowledge
151
Summary
152
Developer Responsibilities
153
A Catalog of Story Smells
155
Too Many Details
157
Thinking Too Far Ahead
158
Customer Has Trouble Prioritizing
159
Customer Wont Write and Prioritize the Stories
160
Developer Responsibilities
161
Using Stories with Scrum
163
The Product Backlog
165
The Sprint Planning Meeting
166
The Sprint Review Meeting
168
The Daily Scrum Meeting
169
Adding Stories to Scrum
171
A Case Study
172
Summary
173
Questions
174
Additional Topics
175
Paper or Software?
177
User Stories and the User Interface
179
Retaining the Stories
182
Stories for Bugs
183
Summary
184
Customer Responsibilities
185
An Example
187
The User Roles
189
Consolidating and Narrowing
191
Role Modeling
193
Adding Personas
195
The Stories
197
Stories for Captain Ron
200
Stories for a Novice Sailor
201
Stories for a NonSailing Gift Buyer
202
Some Administration Stories
203
Wrapping Up
204
Estimating the Stories
207
Advanced Search
210
Rating and Reviewing
211
Accounts
212
Finishing the Estimates
213
All the Estimates
214
The Release Plan
217
Prioritizing the Stories
218
The Finished Release Plan
219
The Acceptance Tests
221
Shopping Cart Tests
222
Buying Books
223
User Accounts
224
Administration
225
Testing the Constraints
226
A Final Story
227
Appendices
229
An Overview of Extreme Programming
231
XPs Values
238
The Principles of XP
239
Summary
240
Answers to Questions
243
Chapter 3 User Role Modeling
245
Chapter 4 Gathering Stories
246
Chapter 5 Working with User Proxies
247
Chapter 8 Estimating User Stories
249
Chapter 10 Planning an Iteration
250
Chapter 12 What Stories Are Not
251
Chapter 13 Why User Stories?
252
Chapter 14 A Catalog of Story Smells
253
Chapter 16 Additional Topics
254
References
257
Index
261
Copyright

Other editions - View all

Common terms and phrases

About the author (2004)

Mike Cohn is the founder of Mountain Goat Software, a process and project management consultancy and training firm. With more than twenty years of experience, Mike has been a technology executive in companies ranging from start-ups to Fortune 40s, and is a founding member of the Agile Alliance. He frequently contributes to industry-related magazines and presents regularly at conferences. He is the author of User Stories Applied (Addison-Wesley, 2004).

Bibliographic information