A user story is a tool used in Agile software development (see definition below) to capture a description of a software feature from an end-user perspective. The user story describes the type of user, what they want and why. A user story helps to create a simplified description of a requirement.
Agile software development is a group of software development methods in which requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible response to change.
A user story template often uses the following type of format:
As a [user-role; e.g.-supervisor], I want [feature, possibly benefit] so that [reason or explanation of benefit].
Examples of user stories are:
- As a social media user, I want to upload photos so that I can share photos with others.
- As a social media administrator, I want to approve photos before they are posted so that I can make sure they are appropriate.
An Agile user story is meant to be short, usually fitting on a sticky note or note card. The user stories should be written by the business in the language of the customer so that it is clear to both the business and the development team what the customer wants and why he wants it.
The development team’s job is to take care of how to develop the code that will satisfy the requirements of the user story. In best-case scenarios, developers collaborate closely with the business owners to clarify the details as the code gets developed.
“The process of writing user stories gives the team a chance to think about each part of the feature from several viewpoints: the business, the end user, the development team.” – Lisa Crispin