You are reading the book Wicked Problems, published by Jon Kolko in 2011.
Use Cases are formal versions of a scenario—stories that describe someone using a product, system, or service to achieve a goal. Compared with scenarios, Use Cases embody a much more rigorous approach to storytelling. In addition to one "main path," systems typically include dozens or even hundreds of other paths people can take on their way to accomplishing their goals. Use Cases are intended to capture the breadth of interactions—both normal and uncommon—someone could have with a system. They help engineers and other technical team members to describe functionality requirements and build a system that matches users' needs. Additionally, use cases can feed directly into "test cases":—the narrative-based evaluation methods used by software developers use to check their code for defects.
Use Cases are written, but are typically accompanied by a diagram of actions and interactions.
To create Use Cases, consider the users who are involved and their goals. Working from an overview to a detailed and descriptive view, articulate the steps the users will take to achieve their goals. More specifically, follow these steps:
List the actors and their roles. What experience can we assume the actors have with both the system and the domain?
For example, the actors involved in a homeless shelter service may include the following:
Describe the actors' multiple goals. For example, Nancy's goals in using an SMS-based bed finder on a freezing night may include the following:
Mitch's goals for the same system are different:
As is common in life, various actors' goals often conflict. In this case, Nancy's goals for a quiet and discreet bed may be at odds with Mitch's goals to provide shelter to as many people as possible.
Create the main narrative that describes a user using the system to achieve a goal. This should describe success, and focus on the most important goals of a given user. As you write the narrative, be sure to include preconditions, technologies, decision points, assumptions, and actions:
Craft supporting Use Cases that relate to subgoals, alternative goals, and related goals.
Continually refine multiple Use Cases in a design to ensure they support one another. Combine smaller Use Cases or break out cases that can stand on their own.
In writing Use Cases, avoid describing the medium of the solution. For example, if the user is going to be using software, avoid the temptation to describe buttons, labels, and other widgets, for two reasons: This level of specificity creates artificial constraints, which are desired at later phases in the project, but limiting to creativity at this early phase. It also tends to "make the Use Cases long, hard to read, and brittle."
Cockburn, Alistair. “Use Cases, ten years later.” STQE magazine, 2002. (accessed October 1, 2011)
Create Use Cases as an explicit way to move from research and opportunity-finding to designing; Use Cases begin to define the solution. They can be created alongside storyboards or can leverage storyboards as a point of departure. The process of creating Use Cases often highlights areas of incomplete research.
The output of a cohesive use-case writing exercise is a series of stories that define the breadth of the system to be designed. Use Cases also act as input into more detailed and pragmatic design artifacts, such as sketches, wireframes, information architecture diagrams, and service design blueprints.
Read the book Writing Effective Use Cases, by Alistair Cockburn.