Use Cases, Huge Cases, Smart Cases
Get an overview of different versions of user stories in different agile methodologies.
We'll cover the following...
Use cases
Just like user stories, use cases describe a project’s functional requirements. A use case defines the interaction between actors and the system. An actor represents a role that a person or thing plays in relation to the use case. Use cases are described as a list of steps. Each step describes a portion of the interaction between the actors and the system. Moreover, use cases recognize exceptions, also described as an enumeration of steps.
Use cases have been around for over 25 years. Because they were already used in previous generations of development methodologies, and because traditional use cases can be bulky, they’re usually considered to be non-Agile by Agile approaches. Despite this, use cases still belong in this discussion because the smart use case has been shown to be a useful unit of work on many Agile projects.
The literature offers numerous templates for describing the use cases, but in brief, a use case will contain at least the following components:
- Name: Each use case has a short name that indicates what the use case is trying to achieve. This is usually a verb with a noun, such as claim damages or request subscription.
- Actors: These are the roles that will execute the use case and will benefit from them. Usually, actors are people, such as a financial manager or subscriber, but actors are sometimes other applications or services.
- Preconditions: These are the conditions to be fulfilled before a use case can start.
- Postconditions: These are the conditions that make the use case successful for the actors. Damage is declared and a subscription is requested.
- Basic flow: This is a list of steps that will be taken for the postcondition to become true. These steps are usually