Stimulus Home

A primer
Human factors in software engineering
March/April 1999
by Glenn Lea, Vancouver Island Chapter

(reprinted with permission from The Orca Imprint, January 1999, newsletter of the VISTC)
   In this highly competitive age, technical writers (OK, "communicators") need to constantly fine-tune their skills to stay current. They always need to be watching for new trends and aware of areas technical writers can add value to their organizations. One such area is Human Factors.


Human Factors is the study of the interaction between machines and their users. In software engineering, Human Factors tends to be restricted to computer interface design. In North America, Human Factors has generally been an engineering-related study. In Europe, however, it is an art and is ensconced in the faculty of Psychology. In fact, the Germans pioneered Human Factors as a discipline. Consider the classic Volkswagen Beetle and the Macintosh interface for Apple computers. Both are success stories for Human Factors engineering.


Technical writers are in a unique position to influence human factor decisions in software design. Their primary role is advocating for the user, understanding the user and interpreting the software's capability to the user in a way that the user best understands. This is, in a sense, Human Factors engineering. I believe, however, that a serious study of Human Factors issues would benefit any technical writer and might even enhance his or her role in the organization. It would certainly add value and enhance the organization's ability to design and develop a high quality product.

As a primer on human interface design, here are a few of the issues in designing usable interfaces:
  • Visibility of system status—the system should always keep the users informed about what is going on through appropriate feedback.

  • Match between system and the real world—the system should speak with words, phrases and concepts familiar to the user, not system-oriented terms and phrases.

  • User control and freedom—the system should provide a clearly marked "emergency exit" to cancel or undo a task.

  • Consistency and Standards—words, situations, or actions should always mean the same thing: follow platform conventions.

  • Error prevention—a careful design is better than good error messages: prevent a problem from occurring in the first place.

  • Recognition rather than recall—make objects, actions and options visible: users should not have to remember information from one part of the dialogue to another.

  • Flexibility and efficiency of use—accelerators, unseen by the novice, speed up interaction for expert users (all levels of users).

  • Aesthetic and minimalist design—dialogues should contain no irrelevant information, no extra "noise".

  • Help for users in recognizing, diagnosing and recovering from errors—error messages should be expressed in plain language (not codes), indicate the problem, and suggest a solution.

  • Help and documentation—any information should be easy to search, focused on the user's task, list concrete steps to be carried out, and not be too large.

To top
Home  |   Executive  |   PDF Version  |   Archive  |   Links  |   Sponsors
Policies  |   Publications  |   President's Message  |   Editor's Desk  |   Membership Corner


Stimulus Online