Use cases are a wonderful idea that has been vastly overcomplicated.
Over and over again I have seen teams sitting and spinning in their
attempts to write use cases. Typically they thrash on issues of form
rather than substance. They argue and debate over preconditions,
postconditions, actors, secondary actors, and a bevy of other things
that _just don't matter_.
The real trick to use cases is to _keep them simple_. Don't worry
about use case forms, just write them on _blank_ paper, or on a
_blank_ page in a simple word processor, or on _blank_ index cards.
Don't worry about filling in all the details. Details aren't
important until much later. Don't worry about capturing _all_ the use
cases; that's an impossible task.
The one thing to remember about use cases is: _tomorrow they are going
to change_. No matter how diligently you capture them, no matter how
fastidiously you record the details, no matter how thoroughly you
think them through, no matter how much effort you apply to exploring
and analyzing the requirements, _tomorrow_ they are going to change.
If something is going to change tomorrow, you don't really need to
capture its details today. Indeed, you want to postpone the capture
of the details until the very last possible moment.
Think of use cases as _just in time requirements._
This post is an excerpt from my latest book:"UML for Java
Programmers", Robert C. Martin, Prentice Hall, 2003. See
http://www.objectmentor.com/UMLFJP for details.
Robert C. Martin | "Uncle Bob"
PO Box 5757 | Tel: (800) 338-6716
565 Lakeview Pkwy | Fax: (847) 573-1658 | www.objectmentor.com
Suite 135 | | www.XProgramming.com
Vernon Hills, IL, | Training and Mentoring | www.junit.org
60061 | OO, XP, Java, C++, Python |