preload
May 20

I have earlier written a post about writing use cases for agile (Scrum) projects, this is a follow up about writing user stories. Do you find it strange that I first wrote about use cases and later are writing about user stories? Well… to be honest with you we started with writing use cases and then later found that this was insufficient and we needed to break the use cases down to short user stories (post-it format).

By doing so you are able to focus on exactly what the user need/want without going into details on how this should be done. We came up with the following template for user stories (I’m saying we because I did this together with a colleague of mine. You can read his blog at www.agilemobility.net).

user story template

Actor: The owner of the user story (often a user). It’s very easy to end up using the name user for the actor but I would recommend to be more specific. By using specific actors it’s easier to understand and set the user story in context with the system.

Action: What the actor want to do. You can also differ between mandatory actions and optional actions. This can be done by using the want or must keywords before the action.

Achievement: What the actor wants to achieve by performing the action. This is the result from executing the action seen from the actors point of view.

user story exampleThe simple example above shows a short user story on post-it note format, but still it’s quite effective and gives you all the info you need to specify and break this down into a more detailed use case. We found that sometimes it’s nice to be able to make sub user stories and order them in a hierarchical way. This can easily be do by using MS Word and headings.

user stories

The example above shows that you now have a unique ID and a name for each user story. You also have the top level user story and the following sub user stories. I think this is a great way to organize the user stories. Writing good and consise user stories can be hard and it takes some time, but by doing this in the start of your project you will identify all the needed functionality. In agile project changes are welcome, but if you are in a customer project this will help you documenting that the new changes are not a part of the original estimated user stories and must be re-estimated.

Good user stories can also be used for writing test documentation and user documentation. The next step now is to see how to use the user stories for both UI design/interaction design and system specification, but that’s a whole other story.

Update: I have revisted this subject and written a follow up post: Writing user stories for agile (Scrum) projects – revisited

Follow me on twitter @PerOla

Share & enjoy
You can subscribe to my comments feed to keep track of new comments.

2 Comments to “Writing user stories for agile (Scrum) projects”

  1. Fred says:

    A couple of comments. First, these examples are very canned. They aren’t real. Why not share some examples from a real project? That would be great!

    Second, it is not normal to split user stories by minor differences in sorting (sort by price, sort by popularity). On a real project, this will lead to an unmanageable number of stories – many of which have large overlaps. Have a look at Cohn’s book, he discusses this. You are better to define one story for your blu-ray situation and add notes about sorting choices.

    You could also use the Invest acronym which Cohn recommends.

    Thanks for your post. Still on the hunt for real user stories from real projects.

  2. Hi Fred,
    I would love to post examples from real projects I work on but I work as a consultant for different clients and I would not feel comfortable posting examples from external projects. If I get involved in a project in the future were I am able to publish some of the user stories I will be happy to do that.

    You are correct; normally you would not split user stories by minor differences but I like to have the user stories as detailed as possible (but not to detailed). Then I use ScrumWorks and add each user story as a task in my product backlog.

    The INVEST acronym which Cohn recommends is a good thumb-rule to use when writing user stories.

    Thanks for your comments.

4 Pingbacks to “Writing user stories for agile (Scrum) projects”

  1. [...] I will kick off the Run Smart With Me (RSWM) project by writing user stories. By doing so I will have a good idea on what functionality I need to implement in this Windows Mobile application. When writing these user stories I will use the template from my earlier post: Writing user stories for agile (Scrum) projects. [...]

  2. [...] have earlier written a post about writing user stories for agile (Scrum) projects. During several projects I have now refined the way I do this and in this post I will explain my [...]

  3. [...] can read more about user stories in a previous post: Writing user stories for agile (Scrum) projects and the follow up post Writing user stories for agile (Scrum) projects – [...]

  4. [...] Writing user stories for agile (Scrum) projects via breathingtech.com [...]

Leave a Reply

Subscribe to my comments feed

Subscribe to my feeds Follow me on Twitter
DZone MVB