User Stories

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.