Beyond Use Case

Photo by Martin Gommel, Flickr

Full disclosure: I’m not a native developer. I didn’t get a computer science degree and I didn’t cut my chops on an Apple IIe. I’m a good architect, though, and end up developing human-friendly Web applications. I’m able to do so because I understand narrative.

I am new to Gainesville and seeking a physician

When I mention narrative, I want to make a clear distinction between narrative and story. In agile development, a user story usually refers to a goal we expect a user to reach as part of their interaction with our application. Usually, the goal is a simple one, such as “I want to buy a book online.” It gives us a general indication of the expected outcome.

A slightly better user story, however, gives us a glimpse into the motivations of the user: “I want to buy a book online because the annual gift-giving season is rapidly approaching, and I want people to continue inviting me to parties.” This brings us a little closer to a user narrative, but we’re not quite there.

I am a 68-year-old man new to Gainesville and seeking a physician

From User Story to Use Case

Once we have our user story, we know what we expect our application to do (allow people to buy books online). To get a clearer picture of how it needs to happen, we’ll have to parse our simple user story into a use case. Thus, buying a book online becomes a set of :

  • Browse or search for books online
  • Select a book by adding it to my online shopping cart
  • At check out, enter my name, address and credit card information

The application must then complete a number of additional tasks to make the transaction happen:

  • Verify the user’s credit card information
  • Notify the shipping department of the transaction, including user’s name and shipping address
  • Automatically update the online inventory count so no one selects a book that’s currently out of stock

In total, these become the use case and help direct the application development. It still doesn’t give us the full picture, however, which is crucial for an excellent application, because it doesn’t consider the background or circumstances of our user’s interaction.

I am a 68-year-old man new to Gainesville and seeking a physician on behalf of my wife

From Use Case to Narrative

Developing for a healthcare site is different than developing for any other kind of site because healthcare is often such an emotional decision. If a person’s child has been diagnosed with leukemia, for example, the use case might be similar to someone looking for a general practitioner in a new town, but the narrative is completely different.

Let’s take a quick look at the ways the use cases are similar: the user visits the site, selects a provider directory application, and browses providers based on specialty. However, each individual is coming to the site under different circumstances and will thus have different experiences with the application. A worried mother seeking information isn’t going to put up with unnecessary steps, bogus search results, or a friendly call to enter demographic information before proceeding. The differences become even more apparent when we consider aging populations or users inexperienced with computers. Thus, when we consider application development and design, we must consider the circumstances under which the application will be used–why are people using the application, when are they using it, and where is it being accessed?

I am a 68-year-old man new to Gainesville and seeking a specialist on behalf of my wife who has just been diagnosed with idiopathic pulmonary fibrosis

The Delicate Balance

I’m not advocating developing for narrower and narrower use cases (though with user profiles this wouldn’t be impossible). I am advocating, however, for a consideration of narrative as part of application development. Yes, a user story will help define an application’s scope and the distinct tasks it must accomplish, but a user narrative helps determine whether or not an application will frustrate or delight. Or, if not delight, at least minimize additional strain on a person’s already burdened life.