Agile requirements are different from the traditional ones and are usually defined as user stories that allow for slicing functionality in the shippable increments. There are recommendations for a standard user story format and the most known one is “As a <type of user>, I want <some goal> so that <some reason>” popularized by Mike Cohn. The trend for recommending the common format is so strong that there is an evolution and there exist even hacks for making it work in the situations when it doesn’t fit naturally.
I used to be in the same camp of standard format proponents, until I noticed that more and more my stories look closer to “Implement list widget support” and further from “As an application designer I want to use a list widget so that…”.
Those who recommend the standardized format strongly find its usefulness in that it makes you think about the actual user persona or sometimes about a very concrete user. In theory it helps you to make less features just for making the features and more features that will actually be wanted and used by somebody. So why don’t I find it that useful anymore? Well, I know all my user types by heart (I think) and for particular categories I may be able even to list very concrete features needed by a very concrete list of people. Then all these wording just takes space and getting rid of it allows me to focus on the actual feature to be done.
You can argue that the format is useful for starters who don’t know their users and their needs that well. Nice theory, but is a bit of an exaggeration as for me. If somebody is not interested in focusing on the end user and figuring out his real needs, no format on Earth can make him be interested. God knows how many times I was reading stories formally written in canonical format yet making no sense whatsoever and ending as useless half-a-features.
There are two situations when I find the standardized format useful:
Use the standard user story format if you know what you need it for or if you. I am also going to recommend thinking about its usefulness. Just remember that using standard user story format for the sake of “standardness” is senseless.
Comments
template useful for communication
March 10, 2009 by beefarino (not verified), 1 year 5 days ago
Comment id: 2341
Nice post - you don't see many that take this stance and it's nice to hear a different perspective.
Another mantra kept droning in my head while reading: collecting software requirements is a communication problem. I can see how the template might be overkill for a well-established team working on a well-established product. But add a new team member, a new PO, or a new user role, and you have a new communication problem. The template is meant to avoid this by codifying the roles, the actions, and the system behaviors so everyone can have a common understanding of what needs to get done and why.
"If somebody is not
March 10, 2009 by Heather McLean (not verified), 1 year 5 days ago
Comment id: 2342
"If somebody is not interested in focusing on the end user and figuring out his real needs, no format on Earth can make him be interested."
I hear you... this is exactly why 75% of the backlog on my last project started with "As a product owner, I..."
I like the concept of user story format, and it's definitely a useful tool for thinking about what you're doing, but I think you can just as much mileage out of it by stopping and asking the appropriate questions, "Who?" and "Why?" whenever you get stumped trying to decompose requirements.
You are absolutely right
March 10, 2009 by Janusz Gorycki, 1 year 4 days ago
Comment id: 2344
I have tried to follow the "standard" format, but decided that it is a waste of time and JIRA database space to do so.
Repeating the "as a user" mantra does not bring much into the converstaion - and having the conversation with the user/PO/stakeholder is what absolutely has to be happening all the time.
It also helps to realize that the couple of words that formulate the user story on your story card, are nothing more than invitation to conversation.
Huzzah!
March 12, 2009 by Jeff Patton (not verified), 1 year 3 days ago
Comment id: 2347
Thanks for speaking up!
User stories in haiku form
March 12, 2009 by Alistair Cockburn (not verified), 1 year 3 days ago
Comment id: 2355
How about haiku form? e.g.
A spunky young buyer named Spry
Came here to buy something fly
- But he found that a bot
- Had taken his spot
Now he'll fill out a captcha and not cry
Alistair
Thank you for the comments,
March 12, 2009 by Artem, 1 year 3 days ago
Comment id: 2356
Thank you for the comments, guys. I particularly like the haiku idea. Should be a lot of fun.. as long as we are for fun :)
Cut the fat
March 13, 2009 by Mike Bria (not verified), 1 year 2 days ago
Comment id: 2363
So, something I like to teach about good agile story-writing/planning is "Cutting the fat". I say, "splitting stories is like cutting the fat from your features - focus on the prime meat first (as your initial user stories), focus only on what's necessary, then add the fat back in (as more stories) later as time permits."
I teach this same principle when it comes to the user story (headline) format itself: "Cut the fat!"
What's the fat? Well, "As a" is fat. "I want to" is fat. "So that I can" is fat. But... The actor, action, and outcome are not fat.
So, instead of:
"As application designer, I want to use a list widget so that I can choose which font is active for my text editing"
I get:
"AnDy chooses his text font".
Same message, less fat. Also, "ubiquitous language" to slim down our actor ("Andy") to a name that the whole team knows is the "application designer".
Fits nicely on a card or sticky, with plenty of room for notes and examples if needed once the conversation occurs.
So, in a nutshell: I'm with ya in that we can simplify the format, but not in favor of losing the key elements as you suggest.
Cheers
MB
Mike, I fully agree that it
March 13, 2009 by Artem, 1 year 2 days ago
Comment id: 2365
Mike, I fully agree that it is important to focus on what's important and if your way helps you - great. In fact I often use a similar system, just skipping (or transforming) different format parts depending on which part of the context is obvious. If I know for sure, that for particular story only users that make sense are application designers, I probably would skip the role title. If there can be nuances when font is chosen by designer or developer (e.g. imagine developer wants to quick play with fonts, while designer needs to fine tune them), then I usually specify the role.
The point is anyway in that the format is just a tool, it cannot force anybody think hard about the user. It's a good tool to play with IF you do care about the user, but e.g. find that too much unstructured info can't fit into your head.
Haiku?
March 13, 2009 by Tim Ottinger (not verified), 1 year 2 days ago
Comment id: 2366
Can requirements fit?
Just seventeen syllables:
A very small space.
On the other hand a limerick
Is an iambic pentameter rhyming trick
It is still rather small
Almost no room at all
But haiku has a different rubric.
Re: Why the Actor often really helps
March 15, 2009 by Mike Bria (not verified), 52 weeks 21 hours ago
Comment id: 2373
Artem (and others of course!) --
Glad you agree, and I definitely hear ya (and am with ya) that sometimes the role itself can be dropped, in the cases where its obvious to all involved.
That said, I think having an appropriate actor specified is very often what allows us to cut a lot of details from what is included in the headline. Why? Because it adds context.
Let me give an example from a team I was working with a couple weeks ago.
Initially, they were writing stories that went something like this:
"User enters billing address so that credit card can be processed during checkout."
I say, "How bout this: instead of 'user' we can call this person our 'buyer' which implies their higher level activity (context) is 'checking out', right?"
Smiles all around and we end up with this:
"Buyer enters credit card billing address"
So, moral of the story (pun intended!): a well chosen actor is often the best tool that allows us to keep things simple without losing useful information.
Cheers!
MB
Don't be over-confident : 1.
June 9, 2009 by saumitri (not verified), 39 weeks 6 days ago
Comment id: 2687
Don't be over-confident :
1. You may think you know your users, but you may often overlook, especially if you are a techie.
2. You need to write a story for the team, not for yourself. Be generous.
3. Writing an elaborated story is an art. If you can't do it, don't bull-shit those who make the effort. Don't pretend you don't need it. Don't hide behind your inability.
Specifying the user/actor in your story
August 3, 2009 by Serenity (not verified), 31 weeks 6 days ago
Comment id: 2928
I've come to find the user/actor to be one of the most important parts of the story. We spend very little time on the user story sentence, and use mind mapping tools to capture the stories. I agree with Mike that they are very useful. It makes me wonder why so many posts here call it wasting time, I wonder if they are actually using the tool correctly.
>After meeting with our clients, we found that the user we had specified in our stories actually needed to be split up into different users, clerk and administrative types. This introduced a need in our software for a stopping point in the process so the data could be reviewed. This was something the users had assumed we knew but did not tell us. Specifying and asking about the user role exposed this need to us.
>Client's identify with the story more when we have an accurate user type listed. If we don't, sometimes they look past that story thinking it does not apply to them. We ask them first, who in their agency performs this action. Since we deal with whole agencies, we have many different actors performing tasks in our software.
>Consider the differences between these two sentences:
“As a job applicant, I want to update my profile…”
“As a hiring recruiter, I want to update my profile…”
These examples could end up in very different parts of the software system. Where an applicant may only be updating his resume or profile, the recruiter could be adding positions, updating company information, etc…, which could result in different fields being exposed, and different functionality when the profile is updated.
I can't say I've ever seen the need for a story that starts with "As an application developer/designer..." Can someone explain this? It sounds like they are creating too many user stories, getting too fine-grained with them, and including themselves as the user.
Over Confidence > Hubris
December 4, 2009 by Matt D (not verified), 14 weeks 2 days ago
Comment id: 4181
@ saumtiri: Excellent point. It is a classic pitfall for anyone inside the SDLC (biz analyst to tester) to say, "I know what my users need/want".
Frankly, it's not enough to even say, "I get it [the user story]; I'll simplify it to make it easier for me". The process/method is more important than any one particular person's preferences.
This mentality leads to bad things...and I mean mis-communication, which really is the death call for translating what business folks really need and want into output.
I do like Mike's idea of personalizing the story some, but the methodology is the methodology. And, I'm not a purist for purist sake, but the standardization of the user story is a building block on which the method relies and other principles connect to. Change it's structure, it's arrangement, or it's position relative to the other parts in play risks the very structure.
Post new comment