SPIder is een Nederlands netwerk van IT-professionals waarin kennis en ervaringen gedeeld worden op het gebied van softwareontwikkelmethodieken, processen en modellen, (software)procesverbetering (SPI), kwaliteit, kwaliteitsboring (QA), ontwerp en test, metrieken en invoeringstrategieën
re-focuses on the essentials and offers a slimmed down, leaner way of working, for software teams seeking the benefits of iterative, incremental development at an enterprise level
Author: Ivar Jacobson, Ian Spence, Kurt Bittner
Based on several years of work with many of our customers around the world, we have revamped use cases to provide a scalable approach to managing requirements for agile projects and programs.
User stories and backlog items don’t give the designers a context to work from
don’t give the project team any sense of “completeness
don’t provide a good-enough mechanism for looking ahead at the difficulty of upcoming work
Staring at the set of extension conditions in a use case lets the analysts suss out which ones will be easy and which will be difficult, and to stage their research accordingly
Here 5 reasons why I still write use cases
The list of goal names provides executives with the shortest summary of what the system will contribute to the business and the users
The main success scenario of each use case provides everyone involved with an agreement as to what the system will basically do, also, sometimes more importantly, what it will not do.
The extension conditions of each use case provide the requirements analysts a framework for investigating all the little, niggling things that somehow take up 80% of the development time and budget
The use case extension scenario fragments provide answers to the many detailed, often tricky business questions
The full use case set shows that the investigators have throught through every user’s needs, every goal they have with respect to the system, and every business variant involved
how much should be written up front to get the project estimate into a safe place
several sticky parts for people using use cases
iteration/sprint lengths are so short that it is not practical to implement an entire use case in just one of them.
Writing good use cases (or any other requirements) requires thinking, communicating, and thinking again. It is much easier just to write user-story tags on index cards and let the project blow up later
We have adopted many of the concepts of Agile development—such as daily build and test, build the smallest piece of functionality that delivers value, etc.—but have retained our up-front work. It’s worked extremely well
As a … I want… so that…” is a new-fangled user story format. The original XP user story format had no rules, so you could simply highlight any phrase in a use case and call it a user story.
Personally, I feel sorry for anyone who has to write “As a… I want… so that…” for 200 user stories. Kind of like being kept after school and having to write “I will not write silly user stories in class” 100 times
A use case pretty much by definition contains multiple stories. A use case is a collection of scenarios related to the primary actor’s goal – some scenarios show the actor interacting with the system and the system interacting with other systems so that they succeed with the goal, some show failure. That’s all in the nature of a use case. see Structuring use cases with goals (discussion: Re: Structuring use cases with goals) from 1995.
A use case written for this will occupy between half a page for a shortish one to 2 pages for a long one.
A user story is a nickname for a single scenario – it contains neither the information content of the scenario nor failure or alternate paths.
A user story typically occupies 1/2 to one sentence no matter its size.
(p.s. Agile was supposed to reduce bureaucracy and overhead, not add to it. :)
Alistair