Kent Beck1 and David West2

1Three Rivers Institute, Oregon, USA

2NewMexico Highlands University, NewMexico, USA

A STORY is just a story, but a user story is key for extreme programming (and agile software development). A user story is distinct from similar techniques (scenarios and use cases) because it is always told from the point of view of the user, not the developer.

A user story begins as text-on-a-card but its life extends throughout development as the on-site customer and the developers engage in dialog that confirms, evaluates, expands, and modifies the original story premise. Users can become more proficient at telling stories, and developers in listening to stories, by recognizing some basic story categories.


User stories are appropriate, applicable and essential to every type of software application—from embedded safety critical systems to prosaic back office accounting systems. Despite the doubts advanced by traditional software engineers, user stories (and XP and Agile methods in general) are appropriate for projects at any level of scale.

While it may appear that the assertions in the previous paragraph are a bit extreme or extravagant, a bit of reflection brings the recognition: if a system has users, those users must communicate their expectations and needs and they will do so by telling you stories. Even if a user handed you a nonstory based document like a flow chart, data flow diagram, or ...

Get Scenarios, Stories, Use Cases: Through the Systems Development Life-Cycle now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.