A User Story is used in agile software development, like Extreme Programming or SCRUM, to define a certain requirement made by a user (project stakeholder/product owner). The user story is written on a small paper in natural language and gives insights about the features and functions the user wants to have in the software. Since the user stories are hold very simple every person can learn how to write them in a few minutes. There is template you can user for your story:
“As a <role> I want <something> so that <benefit>”
Example: “As a car owner I want to pay parking passes with PayPal so that I don’t have pay cash at the automat anymore”
The structure includes the following questions:
The user story is written on an index card or a story-card where additional information is hold. This additional information includes the estimated time for the effort to implement the user story. A way to estimate the time of a user story is to assign points to each card. These points are used as a relative indicator (1 Point is 2 hours of effort) for all cards and they are assigned by the pair programmers who know their skills. So, if a user story has 3 points the estimated time effort by the developers is 3 Points x 2 Hours = 6 Hours. Another information on the story-card is the priority. All requirements are always prioritized by the project stakeholder (product owner). You can user different format types here. Either you use ascending numbers from one (lowest) to ten (highest), the MoSCoW (Must Should Could Wont) or you just write low /medium / high or even use an own format on the user-card. Once you prioritized and ordered them you can choose a strategy which fits your team the best on how to work with these requirements. A User-Story on a story card should also have a unique identifier to enable traceability between the user story and other artefacts (e.g. Acceptance test).
You use user stories in different phases of the agile processes. In the inception phase, you may have the most user stories since the requirements are made here to get a better view of the scope of your system. During the Construction phase iterations, you may change the existing stories, identify new ones or delete some of them. What is not very common but happens though is to identify new user stories during the transition phase.