GSA/christopher

View on GitHub
_guides/effective_user_stories.md

Summary

Maintainability
Test Coverage
---
title: Writing Effective User Stories
category: Agile
audiences:
  - Developers
  - Designers
  - Project Managers
---

A **[User Story]({{ site.baseurl }}/guides/glossary/#user-stories)** describes a feature, or requirement, that is to be implemented and is independent of a specific tool (i.e. JIRA, Rally, Trello, etc.). User stories are employed in various Agile frameworks including Scrum, Kanban, and Extreme Programming. 

User stories should be written as small, independently, testable increments of the business need, and prioritized by the Product Owner. While Product Owners write functional user stories, the Scrum Team can contribute non-functional / technical stories. However, any non-functional user stories added to the Backlog **must** also be vetted **and** prioritized by the Product Owner. Overall, user stories should enable conversation between the Product Owner, Scrum Team, and business group(s).

### Writing User Stories 
During Sprint Grooming, groups of features / requirements, or [Epics]({{ site.baseurl }}/guides/glossary/#epic), are broken down into user stories by the Product Owner. Then Sprint Planning is used to estimate the level of effort to complete a user story through tasking by the Scrum Team. 

The user story is a short, simple description of a feature or function written from the perspective of the end user:

_**As a [** type of user **], I want [** some goal, function **] so that [** some reason **].**_

An example:

**_As a Leasing Specialist, I want the ability to upload an SF-81 document so that I can attach it to my lease file._**

When writing a user story, it requires key content:
* **Description**, or summary of the feature or requirement that meets the business need
* **Acceptance criteria**, or the actions necessary to call the user story _“done,”_ in other words, meet the established [Definition of Done (DoD)]({{ site.baseurl }}/guides/glossary/#definition-of-done)
* And any other items as identified by the team (e.g. Epic, Label, etc.) and within their tool of choice (e.g. JIRA, Rally, etc.),
* And most importantly, it should be: 

<img src="{{ site.baseurl }}/assets/img/guides/invest.png"
  alt="INVEST"
  class="guide-image guide-image-half">  

User story independence is ensured when the delivery increment has been fully decomposed; this allows for the appropriate tasking, estimation, sizing, and testability of the effort. The Product Owner negotiates the prioritization of the functionality with the Scrum Team against user needs, while the value of the user story drives its priority. 

Further, testability of the user story is captured in the acceptance criteria; it should denote the “The Who” _(user)_, “The What” _(capability)_, and “The Why” _(outcome)_ of the increment. For additional detail on writing user stories, check out our [User Story Examples]({{ site.baseurl }}/assets/downloads/UserStoryExamples.pdf), or review [Defining When a Requirement is Complete]({{ site.baseurl }}/guides/requirements_complete/) on defining acceptance criteria.

### Good Reads
These are good references for writing user stories:
* [5 Common Mistakes We Make Writing User Stories](https://www.scrumalliance.org/community/articles/2011/august/5-common-mistakes-we-make-writing-user-stories)
* [10 Tips for Writing Good User Stories](http://www.romanpichler.com/blog/10-tips-writing-good-user-stories/)
* [How to Write Great Agile User Stories](https://sprint.ly/blog/agile-user-stories/)
* [The Easy Way to Writing Good User Stories](http://codesqueeze.com/the-easy-way-to-writing-good-user-stories/)
* [Non-functional Requirements as User Stories](https://www.mountaingoatsoftware.com/blog/non-functional-requirements-as-user-stories)
* [User Stories: An Agile Introduction](http://www.agilemodeling.com/artifacts/userStory.htm)
* [User Stories: What is a User Story?](https://www.mountaingoatsoftware.com/agile/user-stories)
* [Write a Great User Story](https://help.rallydev.com/writing-great-user-story)
* [Your Best Agile User Story](http://www.alexandercowan.com/best-agile-user-story/)