Hansen’s user engineering principles for interactive systems

The ‘feel’ of an interactive system can be compared to the impressions generated by a piece of music. Both can only be experienced over a period of time. With either, the user must abstract the structure of the system from a sequence of details. Each may have a quality of ‘naturalness’ because successive actions follow a logically self-consistent pattern. A good composer can write a new pattern which will seem, after a few listenings, to be so natural the observer wonders why it was never done before.

Just as a composer follows a set of harmonic principles when he writes music, the system designer must follow some set of principles when he designs the sequence of give and take between man and machine. Hansen’s (1972) principles — called user engineering principles — where employed while designing the Emily text editing system.

1. Know the user

The system designer should try to build a profile of the intended user: their education, experience, interests, how much time they have, their manual dexterity, the special requirements of their problem, their reaction to the behaviour of the system, their patience.

2. Minimise memorisation

Because a user forgets, the system must augment their memory.

  • Selection not entry
  • Names not numbers
  • Predictable behaviour
  • Access to system information

3. Optimise operations

This stresses the physical appearance of the system — the modes and speeds of interaction and the sequence of user actions needed to invoke specific facilities. The guiding principle is that the system should be as unobtrusive as possible, a tool that is wielded almost without conscious effort. The user should be encouraged to think not in terms of the fight pen and keyboard, but in terms of how he wants to change the displayed information.

  • Rapid execution of common operations
  • Display inertia
  • Muscle memory
  • Reorganise command parameters

4. Engineer for errors

Modern computers can perform billions of operations without errors. Knowing this, system designers tend to forget that neither users nor system implementers achieve perfection. The system design must protect the user from both the system and themselves.

  • Good error messages
  • Engineer out the common errors
  • Reversible actions
  • Redundancy
  • Data structure integrity

Further reading

Hansen, W. J. (1971). User Engineering Principles for Interactive Systems. Proceeding AFIPS ’71 (Fall). Proceedings of the November 16-18, 1971, Joint Computer Conference, 523-532. New York, NY, USA: ACM Press. doi: 10.1145/1479064.1479159.

Are you building something interesting?

Get in touch