A user story is a tool used in Agile software development 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.
A user story template often uses the following type of format:
As a <role>, I want <feature> so that <reason>.
Examples of user stories are:
As a user, I want to upload photos so that I can share photos with others.
As an 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.