User Stories

Authored by: Donald F. Shafer

Encyclopedia of Software Engineering

Print publication date:  November  2010
Online publication date:  November  2010

Print ISBN: 9781420059779
eBook ISBN: 9781351249270
Adobe ISBN:


 Download Chapter



User Stories were first described as the starting point for eXtreme Programming (XP). They are used for all software development life cycles (SDLCs)—whether or not based on Agile techniques. User Stories provide two of the most critical inputs to the SDLC: requirements and test scenarios. What does a User Story look like? “As a drilling engineer, I can create a file containing an SQL (Structured Query Language) script to update advanced drilling advisor [ADA] on a rig with 1) the wells and formation tops for the wells on the current pad and 2) limits for drilling parameters for a well.” This User Story is from a user (drilling engineer) with a requirement to be able to create, as the user, SQL scripts within an application called ADA. Basically, a User Story is a promise made to the customer that the software development team will have a future conversation about the identified functionality. They are not Unified Modeling Language (UML) use cases. A use case as defined within the Object Management Group's UML Specifications provides an external, behavioral, user's view of the system. A use case is part of the external system model identifying external actors and the system transactions that are meaningful to the actors while following UML modeling rules. First, User Stories are used to create time estimates for the system release currently being designed and constructed. User Stories eliminate the need for large requirements document. They are written from the customers' perspective describing in natural language the things the system needs to do. The User Story must be as complete as necessary for the development team to estimate a low-risk implementation time. Second, User Stories drive the creation of the acceptance tests. In order to verify the User Story, one or more acceptance tests are defined. This is a powerful technique for the user to understand not only the “what” of their requirements but to also define, at the onset of the iteration, the “how” of ensuring its inclusion in the system.

Search for more...
Back to top

Use of cookies on this website

We are using cookies to provide statistics that help us give you the best experience of our site. You can find out more in our Privacy Policy. By continuing to use the site you are agreeing to our use of cookies.