After conducting user research, such as a task analysis, surveys, interviews, and observations, you should have enough information to develop a set of requirements for the system. Requirements specification keeps project stakeholders and developers focused on the goals of the design. These requirements should also be used during quality assurance testing, to ensure that system features and functionality have been designed to support users, based on their needs and preferences.
There are several types of requirements for a website, including:
- Data Requirements
- Environmental Requirements
- Functional Requirements
- Usability Requirements
- User Requirements
- User Experience Requirements
Data Requirements help developers understand how data will be gathered and used, so that they can plan and build a database with functionality that supports the information flow. When collecting information from a user on a website, it is important to understand how to store and format the information so that it may be used efficiently and in multiple ways. For example, if a website form requests a user’s name, it is usually best to separate the name into First Name and Last Name fields, as another area of the web site may require users to alphabetize a list of users by their last name. Another example is that many web sites personalize a user’s experience by displaying “Welcome,” followed by the user’s first or last name only.
The environment plays a powerful role in determining how to best communicate with users via your interface design. There may be cases where the users themselves have no visual, auditory or tactile deficits; however, the environment in which they use the interface limits their normal perceptual abilities. For example, in a hospital setting there may be 2 or more “beeping” machines around a patient during surgery, each with its own set of sounds. If you are designing a device that also includes sounds for alerts and alarms, you should learn about the sounds that the other machines make, so users can accurately distinguish the sounds coming from your device; otherwise, your sounds may not be useful to the user. Another example of emerging technology on a large scale are touch screen devices, which are now in the hands of several million cell phone users with the advent of the iPhone and similar products. Touch screens may impose environmental constraints on a user due to clothing (e.g., wearing gloves in cold weather), and they may be challenging to use while moving, such as when riding on a subway or in a car on a bumpy road. Thus, Environmental Requirements are fundamentally important to an interface’s design.
Once you have a list of features, you should describe how they should function in order to support users’ workflow – the steps that users take to complete a task. It is also good to determine how one feature will interact with other features. Sometimes the interaction of two or more features can create new design problems related to functionality. The resulting list becomes your Functional Requirements.
Respondents are often eager to provide a wish list of desired features for an interface design. Some of these may be fundamental features, some may add value competitively (perhaps by enhancing the user experience), and still others may have been suggested to solve a usability issue inherent in the current design. Evidence of the latter group of features is often found in the workarounds that users create to bridge the gap between an existing interface design and a user’s needs. For example, if a user must remember a 14-digit number in order to track a package being shipped, he may jot the number down on a sheet of paper to relieve his mind from the burden of memorizing it. This workaround suggests that users need an easier way to enter or remember this number, and designing the interface to accommodate the user would be ideal. An additional Functional Requirement could be to provide a way to recover or reset a lost password. It is important that Functional Requirements support user tasks the way that users actually perform or desire to perform them, and not how a web developer or researcher believes they should. It is also important to exclude features that provide no real benefit or value to the user experience. For example, if someone on the project development team comes up with a feature idea, it should be tested with users before it is implemented. You may discover that users perceive the feature as unnecessary, or worse, an obstacle on the path to achieving their goals.
An interface should be easy to learn how to use and easy to remember how to use. The latter pertains especially to devices that require infrequent use. Users should not be required to consult a manual each time they need to use a kitchen blender for instance. Bank ATMs and web-based forms, which may be used by anyone, should be simple to use the first time around without instructions.
Usability Requirements for an interface design should support the following from the perspective of its primary users:
- Efficiency of use: goals are easy to accomplish quickly and with few or no user errors
- Intuitiveness: the interface is easy to learn and navigate; buttons, headings, and help/error messages are simple to understand
- Low perceived workload: the interface appears easy to use, rather than intimidating, demanding and frustrating
User Requirements define how to meet the physical and cognitive needs of the intended users of your website or application. Users should be able to comfortably and effectively use an interface to accomplish the goals that it has been designed to support. When you can clearly define who will be using your interface, and the environment(s) in which it will be used, you can specify User Requirements. A Contextual Task Analysis is one method you can use to gain insights about how and where your users expect to use your interface, by observing how they currently perform a task that your interface will, or already does, support. If you learn that a majority of your intended users have impaired vision, hearing, or motor skills, you may need to design your interface to support accessibility. For example, website form fields and error messages should support assistive devices such as text-to-speech readers. Another example is providing the ability to adjust font size (e.g., small, medium, large) to help users with impaired vision, which may include someone who does not always wear his or her glasses.
User Experience Requirements
User Experience Requirements have an impact on all other requirements. This is because in a User-Centered Design (UCD) process, users come first. Specifically, user needs and preferences for an interface design should be supported to the extent that they provide users an enjoyable experience and the means to complete their task goals with ease. A user’s experience can be enhanced by adding elements of delight to user interactions. Delight may manifest as unexpected (by users) shortcuts that allow a user to complete a common task more efficiently, or through the language used on a website — when you speak the users’ language, you gain user trust. To thoroughly understand user needs and preferences, conduct user research, such as one-on-one structured interviews, focus groups, and ethnographic observations.