Here’s an interesting article (an oldie but a goodie) about the difference between use cases and user stories.
I would agree with the author, Jean Claude Grosjean, that user stories are far more appropriate for agile projects, because they focus on the goals and outputs, not the processes that are contained within.
Also, because they’re smaller, they can translate into requirements very nicely, and the people you talk to to elicit these can usually describe their goals much more easily, than explain the precise processes that they use.
My only hesitation with user stories is that they often don’t contain the intricacies and ‘what if’ scenarios that often pop up, and can ruin time estimates.
Jean Claude’s 14 major differences are:
- A user story is a brief description of functionality as viewed by the user (Role → Goal); it doesn’t model the interaction between the actor and the system, what the use case does. A user story is not a sequence of actions.
- A user story is short and consist in one or two sentences written in the language of the user (example: As a recruiter, I can submit job vacancies). A role and a goal, then it is discussed. A use case is heavier, richer in information: goal, summary, actor, precondition, trigger event, main success scenario and extensions (alternative paths, errors …). Use case is (too much) detailed.
- A user story is smaller and can finally be seen as a part of a specific use case: the main success scenario or an extension
- User stories are used for planning. They play a major role in project estimation and planning (via story points and velocity). Use cases are not used for planning, even if you can use “use cases points” technique to estimate project size.
- User stories emerge faster than use cases; use cases require more time for analysis and writing
- User stories are more readable than use cases; use cases usually belong to a large word document, often poorly written and difficult to read even in a structured template
- User stories are easier to maintain than a 150 pages Use cases Document
- User stories are based on verbal communication and rely on collaboration, discussion and proximity to clarify details. Use case is a textual model (associated with diagrams): every thing is written !
- User stories are in theory written on cards (remember the 3 C rule: Card, Conversation, Confirmation): they’re not intended to be archived unlike use cases.
- A user story must be implemented and tested in one iteration; a specific use case can be implemented in several iterations: main success scenarion on iteration 1; extensions in Iteration 2 and 3 …
- User stories can be more easily written by a user or customer; most of the time use cases are written by user proxies (BA, Consultants …)
- User stories contain acceptance tests (validation criteria) written on the back of the story card; use case not: tests cases are created in a separate documentation
- Use cases provide a more holistic view of the system: precondition, UC diagram, sub use case. Linking user stories is less obvious. This is also a reason why UX and IxD activities are so important in agile contexts !
- Finally, Use cases and user stories were originally associated with two different methodologies (Unified Process vs eXtreme Programming). But both can be used with agile methods and unified process !
Good stuff, and worth reading.