All About Agile | Agile Development Made Easy


User Stories versus Use Cases

by Kelly Waters, 3 February 2009 | Agile User Stories

User Stories v Use CasesScott 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.

Home



9 Responses to “User Stories versus Use Cases”

  1. Scott Sehlhorst says:

    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. Laurent says:

    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. Kelly Waters says:

    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.

  4. Tony says:

    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.

  5. Kelly Waters says:

    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:

    http://www.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.

  6. Josh Milane says:

    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

  7. Hi Kelly,

    I don’t seem to agree with you where you say that User Stories can not include non-functional requirements.

    Having a single artefact format to cover all functional / non-functional requirements was one of the key objectives of writing user stories, was it not?

    Best,
    Piyush

  8. Kelly Waters says:

    Hi Piyush, fair point, I didn’t really mean User Stories can’t be non-functional requirements and in another post about user stories I say that they can be. The point I was trying to make in the comments thread above was simply that non functional requirements often span multiple stories (and maybe even all stories), in which case they might make better confirmations/acceptance criteria rather than stories. For instance, “all features must work on IE, Firefox, Chrome and Safari” might be a standard confirmation on all stories…

    Kelly.

  9. Darren Bruce says:

    Hi

    Read this post and it seems to indicate that Use Cases and User Stories cannot co-exist. I challenge this as I feel User Stories provide no graphical representation back to a Product Owner on how things fit together. I can see real value in combining Use Case diagrams and user stories ie the Use Cases themselves are a ‘container’ of many User stories.

Leave a Reply

What is 9 + 10 ?
Please leave these two fields as-is:
Please do this simple sum so I know you are human:)