According to Martin Fowler, Mike Cohn wrote what is now the standard book on writing user stories: “User Stories Applied: For Agile Software Development” – 2004 [1]. In this book, Mike Cohn describes the three elements of user stories this way: “As a (role), I want (function) so that (business value)”. Later he shifted to referring to the three elements as the role, goal, and reason (“Succeeding with Agile: Software Development Using Scrum” – 2010, page 238). Ultimately he settled on just referring to them much more simply as who, what, and why [2].
A user story is a short, simple description of a feature told from the perspective of the person who desires the new capability, usually a user or customer of the system. User stories typically follow a simple template [3]:
As a < type of user >, I want < some goal > so that < some reason >.
Agile user stories are composed of three aspects that Ron Jeffries named in 2001 with the wonderful alliteration of card, conversation, and confirmation [3], [4], [5]:
- Card: Written description of the story, used for planning and as a reminder
- Conversation: Conversations about the story that serve to flesh out the details of the story
- Confirmation: Tests that convey and document details that can be used to determine when a story is complete.
- [1] Martin Fowler: User Story
- [2] Mountain Goat Software: User Story Template
- [3] Mountain Goat Software: User Stories
- [4] Mike Cohn – User Stories Applied: For Agile Software Development” – 2004
- [5] Atlassian: User stories with examples and a template
- [6] Humanizing Work: Guide to Splitting User Stories