Succeeding with Agile - Mike Cohn's Blog

Advantages of the “As a user, I want” user story template.

In my user stories book and in all my training and conference sessions on user stories I advocate writing user stories in the form of:

“As a <type of user>, I want <some goal> so that <some reason>.” While I consider the so-that clause optional, I really like this template. At a conference, someone asked me why. Because I get that question fairly often, I want to give three reasons why here:

Reason 1
Something significant and I'm tempted to say magical happens when requirements are put in the first person. Obviously by saying “As a such-and-such, I want …” you can see how the person's mind goes instantly to imagining he or she is a such-and-such. As for the magic, Paul McCartney was interviewed and asked about why the Beatles songs were so amazingly popular. One of his responses was that their songs were among the first to use a lot of pronouns. Think about it: She Loves You, I Wanna Hold Your Hand, I Saw Her Standing There, I Am The Walrus, Baby You Can Drive My Car, etc. His point was that these helped people more closely identify with the songs. I tried briefly to find a source for this interview tonight and the closest I found was this. The information in that reference fits my recollection of hearing McCartney says this during a radio interview in 1973 or 74 that I assume was recorded when the Beatles were together.

Reason 2
Having a structure to the stories actually helps the product owner prioritize. If the product backlog is a jumble of things like:

  • Fix exception handing
  • Let users make reservations
  • Users want to see photos
  • Show room size options

… and so on, the product owner has to work harder to understand what the feature is, who benefits from it, and what the value of it is.

Reason 3
I've heard an argument that writing stories with this template actually suppresses the information content of the story because there is so much boilerplate in the text. If you find that true, then correct it in how you present the story. I've seen backlogs in Word that present the boilerplate in grayed text with the unique parts in black. I've created product backlogs in Excel that use column headings to filter out the common text.

Look here, and you'll see what I mean:

sample user stories in Excel

Seriously take a look at the image above before continuing … I'll wait … Please, really look at it before reading further.

OK, here's how I bet you read the spreadsheet. I bet that as you read most of the rows you added in the “As a …,” “I want …,” and “so that …” text, possibly even by looking at the heading as you read across each row. I've experimented by asking people, and this is what most people do. If that text is unnecessary, why do we mentally mouth the words to ourselves or even glance at the heading while reading the row? Perhaps it's not so non-essential after all.

For now, and probably a long time to come, I'll be sticking with the, “As a <type of user>, I want <some goal> so that <some reason>” template for these and other reasons.

About the Author

Mike Cohn is the founder of Mountain Goat Software, a process and project management consultancy that specializes in helping companies adopt and improve their use of Agile processes and techniques. He is the author of User Stories Applied for Agile Software Development, Agile Estimating and Planning, and Succeeding with Agile. Mike is a co-founder of the Agile Alliance. He is also a co-founder and current board member of the Scrum Alliance. He can be reached at info@mountaingoatsoftware.com or connect with Mike on Google+.