Pattern Language for Interactive Usability

This article focused on a way of applying the emerging idea of pattern based design to the creation of usable interactive systems. It has defined patterns based on traditional usability attributes that are common to most User Interfaces. Three patterns are described: simple (one attribute), intrinsic (attribute combinations), and circumstantial (external constraints involved). The article suggests that there have been many partially successful approaches to capturing and communicating the essential elements of good designs. Since the recent prominence of pattern use in object oriented software, the essentials of design solutions have been much easier to understand, learn, and applied to similar cases. The important advancement needed to move from exemplars to templates to patterns seem to be the vocabulary that is specific to design for usability, simple enough to learn and with a broad enough range of application.

So the primary challenges seem to be ways of correctly communicating the elements of patterns for usability, focusing mainly on the details of the design such as interface elements (widgets), task domains, interaction styles and types of users. To address these issues, a vocabulary has been created that would represent the dimensions of usability that can define the forces underlying a design problem. These usability elements consist of: Learnable, Memorable, Efficient, Reliable, Flexible, Automated, Understandable, Subjectively Satisfying. The exact elements in this list are not as important as the idea that they represent dimensions of usability that can define the forces underlying a design problem. They will always need to be interpreted for any development project.

In addition to these elements of usability, the article also suggests a modification to the original definition of a pattern. The main elements are conserved by vary in the need for more clarity from a User Interface perspective. This adapted list consists of

Name: A name for the pattern
Example: Window Place
Context: A context for the design problem
Example: Design of a residential room
Forces: Forces which require resolution
Example: People want to sit and also be in daylight.
Problem: A problem growing from the forces
 

Example: If all seating is away from the windows, then these forces are not resolved, and people will always be dissatisfied in one way or the other. Solution: A known solution, proven in practice Example: Build seating into the window -- the traditional window seat.

So to address the challenges of a clear concise description of the situation and the appropriate pattern use the objective is to begin combing this limited vocabulary into sentences by rating the importance of each element. In this article the rating scale was low, medium or high. More fine-grained numeric scales are also effective as well. To give a small example of how this solution might work we can say that the combination of ?forces? (ratings) in the ?context? of a project defines the ?problem?. In other words, if a system, has to be very easy to learn (Learnable) and very fast in use (Efficient), then the designer has a problem to solve because the two priorities are likely to conflict. However, if Learnable is rated high and Understandable is also high, then the problem is easier to solve, and there is a known ?solution? ? providing the user with a good conceptual model. The use of these elements make it a somewhat trivial task in getting an immediate feel for the amount of effort that will be required to create the required design for the problem.

This Interactive Usability system of creating patterns seem to, at the very least, be a method of properly preparing for the design of a new User Interface. It presents an opportunity to add patterns very easily since the elements that are modified are natural concerns that are accompanied with User Interfaces anyways. The result of this approach to the challenges of UI design is essentially a pattern language that can be extended and evolved with further use. So it becomes a collaboration rather than an individual invention.

Open concerns that can further researched with this type of solution is to look at the more combinations of usability attributes to see which are difficult to design for and which are easy. It may help to analyze existing computer applications to see what usability patterns have implicitly driven the design. Also, look for usability patterns in these existing applications, especially when a system has usability problems and try the idea that there are forces that are difficult to resolve before assuming that the designer was careless. In addition to all open questions it is also extremely beneficial to document new patterns carefully because they will have most value when they are shared for use in other situations.


Dan J Fraser
Last modified: Sun Apr 2 03:48:41 EDT 2000