User Stories versus Use Cases
Scott Sehlhorst from Tyner Blain is one of my favourite bloggers. He's written an excellent post about User Stories versus Use Cases.
When I first used Use Cases, I loved them...
I loved the fact they gave such a clear description of a feature, and the fact that each Use Case could stand alone. They made it really easy to move cards representing the Use Cases around the whiteboard, as a way of managing progress.
But I also found Use Cases a little complicated. When you look closely, they're not that complicated really. But they tend to need a Business Analyst to write them. And they tend to be a bit off-putting for end users or business people.
I think this is partly because they use quite a bit of jargon. And particularly when faced with a lot of them, all up-front, to be signed off and used against them in a change control process later.
So when I came across User Stories, I loved them even more. They seemed to offer all the things I loved about Use Cases, but in a simpler, lighter and easier-to-use format. They're easier to write. And they're much easier for end users or business people to work with.
Scott is right though. User Stories leave out a lot of important details. They leave these details out deliberately, relying on a conversation with the product owner to clarify the details at the time of development. They rely on this collaboration. Developing small increments, getting feedback and iterating, rather than having more detailed documentation up-front. Without this collaboration, I agree, User Stories could be problematic.
Having said that, if the product owner won't collaborate on User Stories throughout development, why would they collaborate on Use Cases during the analysis? In the end, whichever approach you prefer, active user involvement is imperative!
Kelly.
P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...
When I first used Use Cases, I loved them...
I loved the fact they gave such a clear description of a feature, and the fact that each Use Case could stand alone. They made it really easy to move cards representing the Use Cases around the whiteboard, as a way of managing progress.
But I also found Use Cases a little complicated. When you look closely, they're not that complicated really. But they tend to need a Business Analyst to write them. And they tend to be a bit off-putting for end users or business people.
I think this is partly because they use quite a bit of jargon. And particularly when faced with a lot of them, all up-front, to be signed off and used against them in a change control process later.
So when I came across User Stories, I loved them even more. They seemed to offer all the things I loved about Use Cases, but in a simpler, lighter and easier-to-use format. They're easier to write. And they're much easier for end users or business people to work with.
Scott is right though. User Stories leave out a lot of important details. They leave these details out deliberately, relying on a conversation with the product owner to clarify the details at the time of development. They rely on this collaboration. Developing small increments, getting feedback and iterating, rather than having more detailed documentation up-front. Without this collaboration, I agree, User Stories could be problematic.
Having said that, if the product owner won't collaborate on User Stories throughout development, why would they collaborate on Use Cases during the analysis? In the end, whichever approach you prefer, active user involvement is imperative!
Kelly.
P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...
4 February 2009 14:53
Hey Kelly, thanks so very much! I always get a little worried when I feel like I'm writing by candlelight in a room full of gunpowder - which the "agile vs. not" world can sometimes be. As I spend more and more time with companies in various stages of "becoming agile", I see so many people get burned by the platitudes of one side or the other. The challenge is to provide a nuanced, realistic perspective that isn't so nuanced as to be pedantic and unreadable. I really appreciate the validation.
I'll also throw out one thing about collaboration dynamics in a waterfall world. Teams can get a reasonable view of what is required "right now" through elicitation efforts, that allow companies to build "last year's product" pretty effectively. Even without good collaboration.
The cost of doing it that way - best case, your product implements last year's ideas. There has been enough inefficiency (historically) that companies have been able to succeed with this model. I believe (1) that this is gradually changing, and (2) there is a huge opportunity for companies to dominate their markets by exploiting this weakness in their competitors.
Thanks again for the kind words, too.
2 June 2009 16:16
Both posts (Scott's and yours) are great.
I've also recently read the book Use Case Modeling by Kirt Bittner and Ian Spence.
I wanted to ask you, what make you prefer User Stories over Use Case Brief?
3 June 2009 08:28
Hi Laurent
Personally I prefer user stories because my experience tells me that business people find them easier to work with than use cases. I think that's partly because user stories are written in user language, whereas use cases tend to include more jargon, and partly because user stories tend to be done piecemeal, just before a feature is developed; whereas use cases tend to be done all up-front. Admittedly doing use cases just-in-time would make the difference between use cases and users stories even more subtle. Then, the difference is more a matter of personal preference, I would suggest. Use cases feel formal and emphasise documenting the feature. User stories feel informal, and emphasis human-to-human interaction to get the details.
Hope that helps,
Kelly.
29 July 2009 13:40
We've just started an Agile project and the story details and number for stories seems to be our biggest sticking point. And the cause for too much frustration (I think). Our current list looks more like a strangely worded Must/Should/May requirements document than any thing else.
I'm still not sure how much detail needs to be provided within a Story.
Say, we want a software product to be compatible with XP, Visa, 2003, 2008 on both 32 and 64-bit and support 8 languages.
Do we write a single long-winded story that includes all those combinations? Do we write multiple stories? Or do we write some sort of "general" story that implies cross-platform support and leave the "details" to collaboration?
"As a user, I want ProductX to support all my platforms so I can deploy a it throughout my organization without upgrading hardware."
Seems a bit too broad and difficult to track? Given the special development that will most likely need to be done to complete such a story.
29 July 2009 18:27
Hi Tony
The example you've highlighted isn't really a user story. User stories should ideally be features from a user perspective, rather than this kind of non-functional requirement of supporting platforms x, y and z.
I would describe this more as a test or 'confirmation' that is standard and therefore should be applied to all of your user stories.
One way of handling such things is to create a standard checklist for any confirmations that span all of your user stories. You can then add a confirmation point on the back of every story card for passing the standard checklist, as well as any specific confirmations for each story.
It might be worth you having a read through this article:
https://agile-software-development.com/2008/04/writing-good-user-stories.html
I would recommend following all the links in this article and reading them. When you have read through these posts, I think you should have a fairly rounded understanding of user stories, confirmations etc and my comments above should hopefully make sense.
I hope this helps,
Kelly.
21 October 2009 23:43
Hi,
Fully dressed Use Cases, User Stories, or UML - it will always depend on the people involved and what is most useful.
I will forever (maybe) reject the idea of a singular approach for all teams/projects/initiatives. It is far too presumptive.
Best,
Josh