In the Scrum method of agile software development, user stories are how work is expressed in the backlog. How a team decides to write its user stories is a matter of preference, but the user story must always be written from the perspective of the end user. That is, team members are encouraged to conceive of their work from the standpoint of the consumer who will use it (hence “user” story). A team might articulate a story as a noun or, more specifically, a feature to be built into a product, such as “text message” on a cell phone project or “speedometer” for an automobile manufacturer. Or the story could be stated in a sentence or phrase, such as “debug GPS tracking system.”
Many Scrum teams have adopted Mike Cohn’s user story template, in which a single sentence identifies who the end user is, what the end user wants, and why. This model of a user story is typically written like this: “As a [end user role], I want [the desire] so that [the rationale].
By way of illustration without placeholders, consider how a user story for a developer working on a calculator application for a PC might express the work. First, he would need to know who he is coding the application for: a PC user. Secondly, he would want to determine what the PC user would want to use the application for: to have a convenient prepackaged calculator application. Finally, he would want to state why it’s important that the PC user have this application. This is perhaps the least clearly defined piece of information, but one can assume that the developer might state the rationale would be to add, subtract, multiply, and divide-or to simply add value to the product. Thus the final user story might read something like this: “As a PC user, I want a calculator with basic functionality on my PC so that I can conveniently perform basic mathematic operations and enhance my overall experience.”
In conclusion, user stories are a way to document requirements from the perspective of the end user. Although stories can be written in a number of ways, Mike Cohn’s model is of particular value for Scrum development teams because it provides the most information about the story, including for whom it is being built and why. By orienting the story to reflect the desires of the end user, user stories help developers remain focused on what the customer wants.