In software development and product management, a user story is one or more sentences in the everyday or business language of the end user or user of a system that captures what a user does or needs to do as part of his or her job function. User stories are used with agile software development methodologies as the basis for defining the functions a business system must provide, and to facilitate requirements management.
It captures the 'who', 'what' and 'why' of a requirement in a simple, concise way, often limited in detail by what can be hand-written on a small paper notecard. User stories offer a quick way of handling customer requirements without having to create formalized requirement documents and without performing administrative tasks related to maintaining them. A project will gather user stories in order to respond faster and with less overhead to rapidly changing real-world requirements.
A theme is a collection of related user stories. For example, for a university registration system there might be themes around students, course management, transcript generation, grade administration, financial processing. Themes are often used to organize stories into releases or to organize them so that various sub-teams can work on them.
A simple structure for defining features or user stories can look something like this:
As a I want to achieve so that I get
For example, as an avid restaurant visitor I want to see unbiased reviews of a restaurant near a specific location so that I can decide where to go for dinner.
The most useful way to validate user stories is through a conversation. Conversations enable a richer form of exchanging information and collaborating to ensure that the correct requirements are expressed and understood by the entire team.
A user story also includes confirmation information in the form of conditions of satisfaction, or acceptance criteria that clarify the desired behavior. This information is used by the development team to better understand what to build and test that the user story has been built and implemented to achieve the desired outcome.
More complex feature templates can include a high-level outline (includes the basic areas of the business that are impacted by the product or feature), functional-based layout (breaking a large product into discrete chunks of functionality) and questionnaire format (posing a series of questions to outline the features).