On Twitter, I complained about the official Agile user story format of writing, “As a [user], I want to [action] so that [result]”:
As a user, I find starting every requirement with “as a user” tedious, pretentious, ostentatious, and pompous.
A tweep (@Symbo1ics) challenged me on this:
@johnderosa It’s still an improvement over “As a developer, I think a user…”
I think this is pretentious twaddle. Here’s why.
- I know I need to keep the user front and center in my work, and needn’t be reminded of it by a contrived mechanism.
- I know the users of my product are the, duh, users. If they can’t use it then they won’t be my product’s users anymore.
- Repetitive boilerplate is bad in programming languages. Why should it be good in a user story?
- SCRUM masters and other Agile zealots sell this because it’s part of their palaver. Of course they’ll say you need to do it.
- I’m reminded of the Agile notion of valuing “individuals and interactions over processes and tools.”
I was in a SCRUM meeting (gah) where a developer asked how to write a story to support refactoring code in order to improve its reliability. The answer was to write, “As a user, I want the foobar process to be more reliable.” Another question was how to write a story to support fixing some badly designed foreign keys. (We had tables with circular relationships. Don’t ask.) The answer was to write, “As a user, I want the product to be more easily maintainable.” This is imbecilic.
You could say that in both cases the story should use a different role. E.g., “As a developer, I want the product to be more maintainable.” But that’s gratuitous. Why not, “Remove the circular table relationships in the xyz tables?” Or for my first example, “The xyz nightly process is brittle in the abc phase?” Both of those would be more straightforward.
You could say that starting a story with a role reminds you of who the beneficiary is. I’d say that if you don’t know why a failing nightly process is a bad thing, you’re 12 miles north of Lost, Alaska. Adding three words and a comma to a sentence’s opening won’t help you.
I’m not criticizing user stories. They’re a fine tool.
But! Here’s a compromise I can live with! It comes from a consulting company’s blog post.
I’m OK with this because the columns need a header anyway and there’s no repetitive boilerplate. And if you need those particular words to remind you that your users exist, well, just twitch your eyeballs up on the screen a couple of inches.
One thought on “As a user, I want to gag on a spoon”
Like you point out with your table, I find it occasionally useful when I’ve got different classes of users and I’m reading through a long list of stories. For example, “As an agile fan-boy, I want to fart rainbows so we can all live in harmony.” and “As a technical curmudgeon, I want to poke my eyes with the blunt end of Palm Pilot stylus, so I don’t have to witness these ceremonies.” are easy to tell apart. Yes, it’s repetitive, but it quickly becomes an idiom that is scanned and read quickly.