Use Cases -- A Minimalist's view.

Use Cases -- A Minimalist's view.

Post by Robert C. Mart » Thu, 03 Jul 2003 23:46:28



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     |

 
 
 

1. Use Cases -- A Minimalist view.

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     |

2. Thanks guys

3. ListView Control: Inconsistency when switching between 'Icon View' and 'Report View'

4. Uninstall

5. VC++: Compile error: case value '2' already used

6. HP690c printer

7. Anyone using/have views of Select OMT Professional or a better case tool (for OMT)?

8. spreadsheet list import: non single-line fields?

9. Q:'default' before 'case' in 'switch'

10. FOV: field of view (was Re: America's Army Point of View)

11. MSDN doesn't have Dividing window pane for tree view and topic view

12. Using Microsoft's HTMl Help ActiveX control for viewing compiled HTML help files.

13. Which case in case of case-insensitive?