Sign up to get Steve Denning's FREE newsletter

 

You'll get tips, tricks and advance chapters from Steve's forthcoming book. Click here to sign-up for newsletter.

User Stories Applied

A book by Mike Cohn

Summary: User Stories Applied by Mike Cohn (Addison-Wesley. 2004) is an interesting book, which deserves a much wider audience than the software developers in Agile, Scrum and XP for whom the book is explicitly intended. Some interesting points that emerge:

The book catalogues the systematic use of stories by a major 21st Century business sector, i.e. software development.

In this sector, stories play a key role in organizational efficiency and effectiveness.

The value comes from the conversation that the story provokes, rather than the story itself.

Oral stories are more valuable than written stories.

The most useful stories are minimalist in form.

Review

How do you decide what software is meant to do? This is a surprisingly complicated problem. Many people are involved. Users want a useful system, but often they don’t know exactly what they want. And they don’t know what they don’t want until they see it. And they don’t always know what’s possible or how much it will cost. Programmers want to do interesting things with code. Product managers want flexibility combined with reliability. Testers want to measure. Project managers want a product that will sell in the marketplace but they also want it quickly and cheaply, and without sacrificing quality. Settling all these issues in a way that everyone can support, and maintaining that balance for months or even years, isn’t easy.

The traditional way of approaching the problem (the so-called “waterfall” approach) is by specifying an extensive list of upfront requirements, and then freezing those requirements for the duration of the project. In practice, this doesn’t work well. When you have one big decision, it inevitably gets some things wrong. That’s because it isn’t possible to predict the outcome of a big software project in advance. If users are given only one opportunity to say what they want, they will ask for more than they really want or need. Moreover they don’t know what they really want or don’t want in advance, and can’t see the implications of their requirements in terms of cost or time. As a result, upfront written requirements, once frozen, can themselves become the goal, when those requirements have ceased to represent what anyone really wants or needs. When tradeoffs are inevitably made between content and time, the choices don’t reflect real wants or needs.

In his very interesting book, User Stories Applied (Addison-Wesly, 2004) Mike Cohn describes a very different process in which user stories are employed to ascertain what the user really wants in a continuing conversation. There are a number of striking things about the book, which has wide application beyond the narrow field of Agile, Scrum and XP software development that Cohn explicitly addresses.

First, the story isn’t an end in itself. The story is a means to having a conversation. As a result, Cohn’s stories are minimalist in the extreme. An example of a “good” story is the following, written on a note card, about a software project involving the posting of jobs on a website:

"A user can find information about potential jobs by searching on the site."

There is plenty of space on the card for the developers to write notes about the story when the conversation is held.

An example of a “bad” user story, in Cohn’s view, would be one that spelt out a lot more details, like this:

"A user can view information about potential jobs by searching on the site, for salary, expertise, location, responsibilities, date the job was posted, name of the firm, and job title."

Cohn’s example of a “good” story card only just meet my minimalist definition of a story, namely an account of two or more events joined together by some kind of causal connection.  Some of his other examples of good stories cross the line and are not stories at all, because they only have a single event, e.g. “A user can post her resume to the website.”

Second, in Cohn’s view, stories are not intended to document user needs. Instead, stories are prompts for conversations in which programmers and users can figure out what is really wanted and then test and confirm that understanding with prototypes of what is needed. In fact each story is part of a three –step process:

  • A card on which the story prompt is written
  • A conversation in which users flesh out the details of what is needed.
  • A confirmation which the users need is confirmed.

Third, the stories are written by the users. That’s because the stories must be written in the language of business, not the language of computer programmers. The customer needs to be able to set priorities among different needs and so it must understand exactly what is meant by the story.

Fourth, the stories are imaginary, not true stories about things that actually happened. They involve the users imagining what it would be like, if the website was built.

Fifth, during a story workshop, users brainstorm as many stories as possible. The idea is to get as broad a picture as possible of the possible things that could be developed so that priorities can be established among the various needs.

Sixth, the stories are costed. Once they are out in the open, then the developers can start to figure out what it would take to fulfill each user story. The philosophy is that priorities can’t be established unless and until costs have been taken into account.

Seventh, once the stories have been costed, and the iteration period determined, then the stories are prioritized, i.e. they are put into piles according to their priority. The developers start working on the pile of highest priority.

Eighth, as the work proceeds, the users, or their representatives, stay in regular contact with the developers, and the stories are constantly adjusted; they may be changed or removed, or new stories added, as the work unfolds, and as the users perceive their needs in relation to the evolving product. Some stories may turn out to be harder than expected to fulfill and they may be moved to a later iteration. New stories reflecting new needs that become apparent in the course of the work.

Ninth, when the work is done, the stories are tested, i.e. they are put through a process of verifying that the stories work exactly the way the users expected them to work.

Among the reasons for using stories are:

  • User stories and the conversations provoked by them comprise verbal communication, which is clearer than written communication.
  • User stories represent a common language. They are comprehensible to both users and developers.
  • User stories are the right size for planning and prioritizing.
  • User stories are ideal for iterative development, which is the nature of most software development.
  • User stories help establish priorities that make sense to both users and developers
  • The process enables transparency. Everyone understands why

Cohn suggests six criteria of good user stories:

  • Independent: each stories should ideally be independent of the other stories, so as to facilitate prioritization.
  • Negotiable: the stories are not contracts written in stone. They form the basis of conversations, during which the story may be adjusted, or even removed.
  • Valuable to users or purchasers: sometimes the purchaser may have different needs from the users. E.g. a company may have requirements for consistency and cost-effectiveness that are of no interest to the users of the software.
  • Estimatable: it must be possible to estimate roughly how much time and effort would be involved in fulfilling the story.
  • Small: If the story is too big or too small, it cannot be used for planning purposes.
  • Testable: the story must be written in such a way that it can be tested. For example, a story to the effect that “the user must the software easy to use” cannot be tested, whereas “the user must get a response within five seconds” can be tested.

Cohn’s book is interesting from a number of perspectives.

  • The book catalogues the systematic use of stories by a major 21st Century business sector, i.e. software development.
  • In this sector, stories play a key role in organizational efficiency and effectiveness.
  • The value comes from the conversation that the story provokes, rather than the story itself.
  • Oral stories are more valuable than written stories.
  • The most useful stories are minimalist in form.

One fascinating question: could the practices described by Cohn be applied to other business sectors, such as my own business? Clearly, it could be applied to my current project of upgrading my website, which is iterative software development. My recent newsletter generated a considerable amount of additional traffic to the website, but no one (no, not one!) responded to my request for suggestions on things to improve on the website. Suppose I were to solicit user stories? Would that produce more of a response? Hint: send your user story to steve@stevedenning.com 

Could it be applied, for instance, to writing a book? The answer here is less obvious. A book isn’t usually produced in an iterative fashion, although I have made a practice of sending out early drafts of chapters to get feedback. The comments received have been useful but sometimes are entirely helpful, because they lack a grasp of the overall design of the book. This occurs because, naturally, they haven’t read the whole book at the time they are reading individual chapters. A book is about enabling a read to look at, and interact with, the world in a new and different way. It’s hard for readers to imagine this before they have read the whole book. Could reader involvement be made more useful by having readers share their stories using Cohn’s methodology, and then writing in a more iterative fashion, involving users at every step of the way? This is worth more thought.

In any event, User Stories Applied by Mike Cohn is well worth reading and belongs on the bookshelf of anyone interested in the use of stories in organizations.

 

 

 


Read the Introduction
Watch the video
& pick up these amazing gifts!

Join our on-line
discussion group:

"Revolutionizing
the World
of Work"