FREE Subscription to Dr. Dobb’s Digest: Same Great Content, New Digital Edition
Site Archive (Complete)
Architecture Blog: Use Cases and User Stories
Architecture & Design
PATTERN LANGUAGE

Modeling, Managing, Making it Right.

by Jonathan Erickson
IF YOU BUILD IT

... Will they Come?

by Arnon Rotem-Gal-Oz
November 15, 2007

Use Cases and User Stories

Jeremy Miller writes that he prefers user stories over use cases--and I basically agree with him. Mainly because user stories are more fine-grained, which leads to making them more "estimateable" and manageable than use cases.

However, having used both, there's one thing use cases do better than user stories -- eliciting related scenarios. When you write a use case that covers a business scenario, the use case template makes you think about variations and exceptions. If you're not careful to proceed in a structured manner when you try to think of a theme of user stories, you might miss some.

One important point regarding use cases is that you don't have to treat the use case as a single monolithic block. When you work with use cases it doesn't have to mean that you sign-off use cases in a Waterfall-ish manner -- that is, something that has to do with your development methodology.

You can develop use cases incrementally; that is, only do some of the use cases per "release". You can also elaborate use cases iteratively by elaborating/identifying some of the scenarios in each iteration (in a manner similar to user stories). I have
successfully used both incremental and iterative use case elaborations on several projects and I find this approach useful. I even wrote a ( paper summarizing my use cases experience a few years ago. (Warning! More than 60 pages.)

In fact, even today I find it useful to use both tools when I would usually start with identifying a user story and writing that down. Then map it to a use case (either an existing or new one) -- where a use case roughly equals a user story theme. As I mentioned previously, I can them identify more user stories and add them to the product backlog. The use case stays as a skeleton with links to the user stories and helps provide context to individual use stories. (Okay, so that isn't a use case in the traditional sense, but I find it useful anyway.)

Generally speaking, it is important to note that while it is tempting to equate a user story with a scenario in a use case, that isn't always correct. Sometimes a user story would be a step in a use case, and sometimes a story is shared by several use cases -- since a fine-grained feature that delivers business value can be used in many business processes, which is what use cases are oriented to.

As an aside, if you have a project where you do have to write all the requirements up-front (like they won't change anyway), then I find that use cases are superior to IEEE 830 style requirements ("The system shall..."). But hey, that's another story.

Posted by Arnon Rotem-Gal-Oz at 04:05 PM  Permalink




 
INFO-LINK


Techweb
Informationweek Business Technology Network
InformationweekInformationweek 500Informationweek 500 ConferenceInformationweek AnalyticsInformationweek Events
Informationweek MagazineGlobal CIOIWK Government ITbMightyByte and SwitchDark Reading
Digital LibraryIntelligent EnterpriseInternet EvolutionNetwork ComputingPlug Into The CloudDr. DobbsContentinople
space
TechWeb Events Network
InteropVoiceConWeb 2.0 ExpoWeb 2.0 SummitEnterprise 2.0Mobile Business ExpoNoJitter
Black HatGTECEnergy CampCloud ConnectGov 2.0 ExpoGov 2.0 Summit
space
Light Reading Communications Network
Light ReadingLight Reading AsiaUnstrungCable Digital NewsInternet EvolutionPyramid Research
Heavy ReadingLight Reading LiveLight Reading InsiderEthrnet ExpoTelco TVTower Technology Summit
space
Financial Technology Network
Advanced TradingBank Systems and TechnologyInsurance and TechnologyWall Street and TechnologyAccelerating WallstreetBST SummitBuyside Trading SummitIT Summit
space
Microsoft Technology Network
MSDNTechNetTotal IT ProTotal Dev ProNET Total Dev Pro CommunitySQL Total Dev Pro Community
space