Table of Contents
I: GETTING STARTED. 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?
Questions.2: Writing Stories.
Valuable to Purchasers or Users.
Questions.3: User Role Modeling.
Role Modeling Steps.
Two Additional Techniques.
What If I Have On-Site Users?
Questions.4: Gathering Stories.
Elicitation and Capture Should Be Illicit.
A Little Is Enough, or Is It?
Questions.5: Working with User Proxies.
The Users' Manager.
A Development Manager.
The Marketing Group.
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.
Questions.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.
Questions.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.
Don't Number Story Cards.
Don't Forget the Purpose.
II: ESTIMATING AND PLANNING. 8: Estimating User Stories.
Estimate as a Team.
Using Story Points.
What If We Pair Program?
Questions.9: Planning a Release.
When Do We Want the Release?
What Would You Like in It?
Prioritizing the Stories.
Prioritizing Infrastructural Needs.
Selecting an Iteration Length.
From Story Points to Expected Duration.
The Initial Velocity.
Creating the Release Plan.
Questions.10: Planning an Iteration.
Iteration Planning Overview.
Discussing the Stories.
Disaggregating into Tasks.
Estimate and Confirm.
Questions.11: Measuring and Monitoring Velocity.
Planned and Actual Velocity.
Iteration Burndown Charts.
Burndown Charts During an Iteration.
III: FREQUENTLY DISCUSSED TOPICS. 12: What Stories Are Not.
User Stories Aren't IEEE 830.
User Stories Are Not Use Cases.
User Stories Aren't Scenarios.
Questions.13: Why User Stories?
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?
Questions.14: A Catalog of Story Smells.
Stories Are Too Small.
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.
Questions.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.
Questions.16: Additional Topics.
Handling NonFunctional Requirements.
Paper or Software?
User Stories and the User Interface.
Retaining the Stories.
Stories for Bugs.
IV: AN EXAMPLE. 17: The User Roles.
Identifying the Customer.
Identifying Some Initial Roles.
Consolidating and Narrowing.
Adding Personas.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.19: Estimating the Stories.
The First Story.
Rating and Reviewing.
Finishing the Estimates.
All the Estimates.20: The Release Plan.
Prioritizing the Stories.
The Finished Release Plan.21: The Acceptance Tests.
The Search Tests.
Shopping Cart Tests.
Testing the Constraints.
A Final Story.
V: APPENDICES. Appendix A: An Overview of Extreme Programming.
The Twelve Practices.
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.
The concept of user stories has its roots as one of the main tenets of Extreme Programming. In simple terms, user stories represent an effective means of gathering requirements from the customer (roughly akin to use cases). This book describes user stories and demonstrates how they can be used to properly plan, manage, and test software development projects. The book highlights both successful and unsuccessful implementations of the concept, and provides sets of questions and exercises that drive home its main points. After absorbing the lessons in this book, readers will be able to introduce user stories in their organizations as an effective means of determining precisely what is required of a software application.
About the Author
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).