HOME

TheInfoList



OR:

In
software development Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...
and
product management Product management is the business process of planning, developing, launching, and managing a product or service. It includes the entire lifecycle of a product, from ideation to development to go to market. Product managers are responsible for ...
, a user story is an informal, natural language description of features of a software system. They are written from the perspective of an
end user In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ultimately use a product. The end user stands in contrast to users who support or maintain the product, such as sysops, system administrat ...
or user of a system, and may be recorded on index cards,
Post-it note A Post-it Note (or sticky note) is a small piece of paper with a re-adherable strip of glue on its back, made for temporarily attaching notes to documents and other surfaces. A low- tack pressure-sensitive adhesive allows the notes to be easil ...
s, or digitally in project management software. Depending on the project, user stories may be written by different stakeholders like client, user, manager, or development team. User stories are a type of boundary object. They facilitate
sensemaking Sensemaking or sense-making is the process by which people give meaning to their collective experiences. It has been defined as "the ongoing retrospective development of plausible images that rationalize what people are doing" ( Weick, Sutcliffe, ...
and communication; and may help software teams document their understanding of the system and its context.


History

* 1997: Kent Beck introduces user stories at the Chrysler C3 project in Detroit. * 1998:
Alistair Cockburn Alistair Cockburn ( ) is an American computer scientist, known as one of the initiators of the agile movement in software development. He cosigned (with 17 others) the Manifesto for Agile Software Development. Life and career Cockburn start ...
visited the C3 project and coined the phrase "A user story is a promise for a conversation." * 1999:
Kent Beck Kent Beck (born 1961) is an American software engineer and the creator of extreme programming, a software development methodology that eschews rigid formal specification for a collaborative and iterative design process. Beck was one of the 17 or ...
published the first edition of the book ''Extreme Programming Explained'', introducing
Extreme Programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, PD ...
(XP), and the usage of user stories in the
planning game Extreme programming (XP) is an agile software development methodology used to implement software projects. This article details the practices used in this methodology. Extreme programming has 12 practices, grouped into four areas, derived from the ...
. * 2001:
Ron Jeffries Ron Jeffries (born December 26, 1939) is one of the three founders of the Extreme Programming (XP) software development methodology circa 1996, along with Kent Beck Kent Beck (born 1961) is an American software engineer and the creator of ex ...
proposed a "Three Cs" formula for user story creation: ** The ''Card'' (or often a
post-it note A Post-it Note (or sticky note) is a small piece of paper with a re-adherable strip of glue on its back, made for temporarily attaching notes to documents and other surfaces. A low- tack pressure-sensitive adhesive allows the notes to be easil ...
) is a tangible physical token to hold the concepts; ** The ''Conversation'' is between the stakeholders (customers, users, developers, testers, etc.). It is verbal and often supplemented by documentation; ** The ''Confirmation'' ensures that the objectives of the conversation have been reached. * 2001: The XP team at Connextra in London devised the user story format and shared examples with others. * 2004: Mike Cohn generalized the principles of user stories beyond the usage of cards in his book ''User Stories Applied: For Agile Software Development'' that is now considered the standard reference for the topic according to Martin Fowler. Cohn names Rachel Davies as the inventor of user stories. While Davies was a team member at Connextra she credits the team as a whole with the invention. * 2014: After a first article in 2005 and a blog post in 2008, in 2014 Jeff Patton published the user-story mapping technique, which intends to improve with a systematic approach the identification of user stories and to structure the stories to give better visibility to their interdependence.


Principle

User stories are written by or for users or customers to influence the functionality of the system being developed. In some teams, the product manager (or product owner in
Scrum Scrum may refer to: Sport * Scrum (rugby), a method of restarting play in rugby union and rugby league ** Scrum (rugby union), scrum in rugby union * Scrum, an offensive melee formation in Japanese game Bo-taoshi Media and popular culture ...
), is primarily responsible for formulating user stories and organizing them into a
product backlog Scrum is a framework for project management with an initial emphasis on software development, although it has been used in other fields including research, sales, marketing and advanced technologies. It is designed for teams of ten or fewer me ...
. In other teams, anyone can write a user story. User stories can be developed through discussion with stakeholders, based on personas or are simply made up.


Common templates

User stories may follow one of several formats or templates. The most common is the ''Connextra template'', stated below. Mike Cohn suggested the "so that" clause is optional although still often helpful. : As a I can , so that Chris Matts suggested that "hunting the value" was the first step in successfully delivering software, and proposed this alternative: : In order to as a , I can Another template based on the
Five Ws The Five Ws (sometimes referred to as Five Ws and How, 5W1H, or Six Ws) are questions whose answers are considered basic in information gathering or problem solving. They are often mentioned in journalism (''cf.'' news style), research, and po ...
specifies: : As , I want because A template that's commonly used to improve security is called the "Evil User Story" or "Abuse User Story" and is used as a way to think like a hacker in order to consider scenarios that might occur in a cyber-attack. These stories are written from the perspective of an attacker attempting to compromise or damage the application, rather the typical personae found in a user story: : As a disgruntled employee, I want to wipe out the user database to hurt the company


Examples

;Screening quiz (epic story): As the HR manager, I want to create a screening quiz so that I can understand whether I want to send possible recruits to the functional manager. ;Quiz recall: As a manager, I want to browse my existing quizzes so I can recall what I have in place and figure out if I can just reuse or update an existing quiz for the position I need now. ;Limited backup: As a user, I can indicate folders not to back up so that my backup drive isn't filled up with things I don't need saved.


Usage

A central part of many agile development methodologies, such as in XP's
planning game Extreme programming (XP) is an agile software development methodology used to implement software projects. This article details the practices used in this methodology. Extreme programming has 12 practices, grouped into four areas, derived from the ...
, user stories describe what may be built in the software project. User stories are prioritized by the customer (or the product owner in
Scrum Scrum may refer to: Sport * Scrum (rugby), a method of restarting play in rugby union and rugby league ** Scrum (rugby union), scrum in rugby union * Scrum, an offensive melee formation in Japanese game Bo-taoshi Media and popular culture ...
) to indicate which are most important for the system and will be broken down into tasks and estimated by the developers. One way of estimating is via a Fibonacci scale. When user stories are about to be implemented, the developers should have the possibility to talk to the customer about it. The short stories may be difficult to interpret, may require some background knowledge or the requirements may have changed since the story was written. User stories can be expanded to add detail based on these conversations. This can include notes, attachments and acceptance criteria.


Acceptance criteria

Mike Cohn defines acceptance criteria as "notes about what the story must do in order for the product owner to accept it as complete." They define the boundaries of a user story and are used to confirm when a story is completed and working as intended. The appropriate amount of information to be included in the acceptance criteria varies by team, program and project. Some may include 'predecessor criteria', "The user has already logged in and has already edited his information once". Some may write the acceptance criteria in typical agile format, Given-When-Then. Others may simply use bullet points taken from original requirements gathered from customers or stakeholders. In order for a story to be considered done or complete, all acceptance criteria must be met.


Benefits

There is no good evidence that using user stories increases software success or developer productivity. However, user stories facilitate sensemaking without undue problem structuring, which is linked to success.


Limitations

Limitations of user stories include: * Scale-up problem: User stories written on small physical cards are hard to maintain, difficult to scale to large projects and troublesome for geographically distributed teams. * Vague, informal and incomplete: User story cards are regarded as conversation starters. Being informal, they are open to many interpretations. Being brief, they do not state all of the details necessary to implement a feature. Stories are therefore inappropriate for reaching formal agreements or writing legal contracts. * Lack of non-functional requirements: User stories rarely include performance or non-functional requirement details, so non-functional tests (e.g. response time) may be overlooked. *Don't necessarily represent how technology has to be built: Since user stories are often written from the business perspective, once a technical team begins to implement, it may find that technical constraints require effort which may be broader than the scope of an individual story. Sometimes splitting stories into smaller ones can help resolve this. Other times, 'technical-only' stories are most appropriate. These 'technical-only' stories may be challenged by the business stakeholders as not delivering value that can be demonstrated to customers/stakeholders.


Relationship to epics, themes and initiatives/programs

In many contexts, user stories are used and also summarized in groups for ontological, semantic and organizational reasons. Initiative is also referred to as Program in certain scaled agile frameworks. The different usages depend on the point-of-view, e.g. either looking from a user perspective as product owner in relation to features or a company perspective in relation to task organization. While some suggest to use 'epic' and 'theme' as labels for any thinkable kind of grouping of user stories, organization management tends to use it for strong structuring and uniting work loads. For instance, Jira seems to use a
hierarchically A hierarchy (from Greek: , from , 'president of sacred rites') is an arrangement of items (objects, names, values, categories, etc.) that are represented as being "above", "below", or "at the same level as" one another. Hierarchy is an important ...
organized to-do-list, in which they named the first level of to-do-tasks 'user-story', the second level 'epics' ( grouping of user stories ) and the third level 'initiatives' ( grouping of epics ). However, initiatives are not always present in product management development and just add another level of granularity. In Jira, 'themes' exist ( for tracking purposes ) that allow to cross-relate and group items of ''different parts of the fixed hierarchy''. In this usage, Jira shifts the meaning of themes in an organization perspective: e.g how much time did we spent on developing theme "xyz". But another definition of themes is: a set of stories, epics, features etc for a user that forms a ''common semantic unit or goal''. There is probably not a common definition because different approaches exist for different styles of product design and development. In this sense, some also suggest to not use any kind of hard groups and hierarchies.


Theme

Multiple epics or many very large stories that are closely related are summarized as themes. A common explanation of epics is also: so much work that requires many sprints, or in scaled frameworks -- a Release Train or Solution Train.


Initiative

Multiple themes, epics, or stories grouped together hierarchically.


Epic

Multiple themes or stories grouped together by ontology and/or semantic relationship.


Story map

A story map organises user stories according to a narrative flow that presents the big picture of the product. The technique was developed by Jeff Patton from 2005 to 2014 to address the risk of projects flooded with very detailed user stories that distract from realizing the product's main objectives. User story mapping uses workshops with users to identify first the main business activities. Each of these main activities may involve several kind of users or personas. The horizontal cross-cutting narrative line is then drawn by identifying the main tasks of the individual user involved in these business activities. The line is kept throughout the project. More detailed user stories are gathered and collected as usual with the user story practice. But each new user story is either inserted into the narrative flow or related vertically to a main tasks. The horizontal axis corresponds to the coverage of the product objectives, and the vertical axis to the needs of the individual users. In this way it becomes possible to describe even large systems without losing the big picture. Story maps can easily provide a two-dimensional graphical visualization of the
Product Backlog Scrum is a framework for project management with an initial emphasis on software development, although it has been used in other fields including research, sales, marketing and advanced technologies. It is designed for teams of ten or fewer me ...
: At the top of the map are the headings under which stories are grouped, usually referred to as 'epics' (big coarse-grained user stories), 'themes' (collections of related user stories) or 'activities'. These are identified by orienting at the user’s workflow or "the order you'd explain the behavior of the system". Vertically, below the epics, the actual story cards are allocated and ordered by priority. The first horizontal row is a "walking skeleton" and below that represents increasing sophistication.


User journey map

A user journey map intends to show the big picture but for a single user category. Its narrative line focuses on the chronology of phases and actions that a single user has to perform in order to achieve his or her objectives. This allows to map the user experience beyond a set of user stories. Based on user feedback, the positive and negative emotions can be identified across the journey. Points of friction or unfulfilled needs can be identified on the map. This technique is used to improve the design of a product, allowing to engage users in participatory approaches.


Comparing with use cases

A
use case In software and systems engineering, the phrase use case is a polyseme with two senses: # A usage scenario for a piece of software; often used in the plural to suggest situations where a piece of software may be useful. # A potential scenario ...
has been described as "a generalized description of a set of interactions between the system and one or more actors, where an actor is either a user or another system." While user stories and use cases have some similarities, there are several differences between them.
Kent Beck Kent Beck (born 1961) is an American software engineer and the creator of extreme programming, a software development methodology that eschews rigid formal specification for a collaborative and iterative design process. Beck was one of the 17 or ...
,
Alistair Cockburn Alistair Cockburn ( ) is an American computer scientist, known as one of the initiators of the agile movement in software development. He cosigned (with 17 others) the Manifesto for Agile Software Development. Life and career Cockburn start ...
, Martin Fowler and others discussed this topic further on the c2.com wiki (the home of
extreme programming Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, PD ...
).


See also

*
Kanban board A kanban board is one of the tools that can be used to implement kanban to manage work at a personal or organizational level. Kanban boards visually depict work at various stages of a process using cards to represent work items and columns to rep ...
*
Persona (user experience) A persona, (also user persona, customer persona, buyer persona) in user-centered design and marketing is a fictional character created to represent a user type that might use a site, brand, or product in a similar way. Marketers may use personas to ...
*
Scenario (computing) In computing, a scenario (, ; loaned (), ) is a narrative of foreseeable interactions of user roles (known in the Unified Modeling Language as 'actors') and the technical system, which usually includes computer hardware and software. A scena ...
*
Use case In software and systems engineering, the phrase use case is a polyseme with two senses: # A usage scenario for a piece of software; often used in the plural to suggest situations where a piece of software may be useful. # A potential scenario ...


References


Further reading

*Daniel H. Steinberg, Daniel W. Palmer, ''Extreme Software Engineering'', Pearson Education, Inc., . *Mike Cohn, ''User Stories Applied'', 2004, Addison Wesley, . *Mike Cohn, ''Agile Estimating and Planning'', 2006, Prentice Hall, .
Business Analyst TimePayton Consulting 'How user stories are different from IEEE requirements
{{Authority control Software requirements Extreme programming Agile software development