If you have read my books, seen me speak at a conference,
or taken one of my Scrum training classes, you know that I'm a big proponent of writing user stories in the following format:
“As a <type of user>, I want <some goal or feature> so that <some reason or outcome>.”
I want to share two reasons why I remain convinced that this template is the best way to write a user story.
Two Reasons to Use the Template
The first reason I use the template is that something special happens when requirements are framed in the first person. Saying “As a such-and-such, I want …” makes it personal, helping you identify with your users and their needs. By telling users' stories, your product owner is giving you a glimpse into your users' minds, which will enable you to fill the need more accurately and specifically.
The second reason I believe the template is a great way to frame a user story is that having all your stories structured in a similar way helps the product owner prioritize. Imagine a product backlog that contains only a list of to-do items:
Fix exception handling
Let users make reservations
Users want to see photos
Show room size options
Without the template information, the product owner has to work harder to understand what the feature is, who benefits from it, and what the value of it is. With the template, the product owner is able to see at a glance the intended user, the feature, and the reason why it's important.
Some people complain that writing stories using the template actually suppresses the information content of the story because there is so much boilerplate in the text. If you find that true, then you might want to display the boilerplate in grayed text with the unique parts in black. You can also create a backlog in Excel that uses column headings to filter out the common text. For more on why I believe the boilerplate is essential for understanding the story, check out my 2008 blog post, “Advantages of the “As a user, I want” user story template.
Others worry they don't know enough about their systems yet to figure out who the users are. If that describes your situation, I recommend you find out about your real customers. Read Eric Ries' Lean Startup for some guidance into finding out about your customers when it seems impossible. I firmly believe that you can't create the right system until you know at least a little about who you are building it for.
I like the user story template. It's personal, its practical, and it works. 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. I hope I've given you some compelling reasons to try it too.