The best way to make sure a Web design and development project goes smoothly is to ensure everyone is working toward the same goals. The only way to ensure they’re working toward the same goals is to, early in the project, express the goals in clear, concrete terms and get agreement on them. An effective way to accomplish this is through the creation of use cases.
What is a use case?
Historically, software developers created use cases to define how individuals were expected to interact with a system. They expressed an interaction between users and the software, but from the perspective of the users rather than the system, the programmers, or the programming language itself.
A single use case represented a single task or goal – usually from the perspective of a single user role (called “actors” in geek-speak). However, a single use case could contain several scenarios, which represent variations that could occur in how the system behaves, depending on a specific action or condition of the actor.
For instance, let’s take a look at a simple use case for a word processing application. Say we want to define the printing process. The use case can be expressed in the form of a diagram or in plain text, but either way, it identifies key operations and attributes of the system:
- Who or what is using the operation? (In use cases, the actor isn’t always a person)
- What is the actor’s goal?
- What must the actor do to initiate the process we’re defining?
- What does the system provide in return…
- …when everything is done and set up properly?
…when everything is not done and set up properly?
Consider the implications of the failure to go through this exercise. It would be very easy to overlook the need for the system to identify the conditions necessary for the successful completion of this task, and, if those conditions aren’t met, to provide adequate feedback that lets the user know:
- That an error has occurred,
- What the error was, and
- What steps the user must take to correct it
Ideally, the system would help in this recovery process (e.g., providing a button or wizard to install a printer), but in some cases, it must suffice to tell the user what is wrong in clear language, such as “Your printer is out of paper.”
Don’t laugh. It beats the pants off of some strange error messages we still get from time to time that tell us nothing at all.
Use cases for the Web
Over time, web development teams started to consider a similar approach to website design. They understood that clients were demanding their websites accomplish more. Partially because there were more opportunities for more severe task failure, usability engineers, experience planners, and developers saw the value of introducing use cases for their projects.
With use cases, system designers can define what an actor expects when he comes to a website, what the he must do in order to get the result he expects, and what the system must do, in turn, to deliver that expected result.
And they also must provide for the means to recover from an error. An example of this is in an online shopping cart, where the user has not filled in all the fields or has entered obviously false credit information.
What does the system show in return? Use cases help teams to identify the optimal workflow, provide safeguards that make that workflow the most likely outcome, and anticipate – in spite of those safeguards – what the likely errors are and how to recover from them.
The goals of use cases
Building a book of use cases during the planning stages of creating a website provides several important benefits:
- Helps prioritize. It helps to identify features that provide the highest business value. This is of particular importance, as it helps companies decide what features are most critical to the successful implementation of the overarching business strategy.
- Reduces risk. Each feature takes a certain amount of time to develop. With use cases, it’s easier to estimate how much time (and money) it will take to build a feature. Joined with the budget for the project and the estimate of the value of that feature, it makes it easier to decide which high-risk features are expendable, and which are worth the effort.
- Improves usability. Because tasks are explicitly defined and assigned a business value early in the process, it is easier to anticipate possible obstacles as well as plan an iterative usability test plan. Each iterative chunk should be designed, as much as practical to reduce effort duplication, to test the highest value use cases first, to give the team more time to make improvements.
Web projects will always have a finite budget and a deadline. Use cases help teams establish a common understanding of what user goals are of the highest value to the business and what level of effort is necessary to deliver on the goals. Then it is up to the team to make sure, through their development processes, that the design and interface successfully communicate to the user what they can expect to do and how they can do it.
Ultimately this process helps build better websites that meet the needs of the users and the organization and, through the act of meeting (if not exceeding) audience expectations, endear the brand to the individuals who come to the site.