Search This Blog

Wednesday, June 20, 2007

Interface This!

Imagine interfacing with an expensive keyboard that has dozens keys, most white, some black and none labeled. Each key performs a different function and numerous key combinations are possible. It takes years of long daily practice to become proficient and instructions are written in special code that requires years of real-time decoding expertise. Finally, this keyboard is a real pain to fit on the seat tray of an aircraft even in first class.

Welcome the piano user interface. In fact, we are surrounded by funky interfaces in our homes, workplaces, cars--mostly facing the challenges they present without much objection. (On this topic, I highly recommend Donald Norman's insightful book "The Design of Everyday Things", about the psychology of interfacing with common objects, i.e. doors, faucets etc.) But why is it that users seem to accept challenges such as the piano interface, which has not changed for centuries, while developers are compelled to work on improvements to the user interface of software?

Any software that has been around for several years has to accommodate substantial increase in functionality introduced by creative development and customers needs. Eventually, the interface itself may reach a saturation point that renders evolutionary changes to the design obsolete, and requires revolutionary approach.

Think of it as a house that was originally built for a young family. The kids have all grown and have families of their own, but they insist on staying in the house. Rooms and sections are added where possible to accommodate all residents, and everyone is happy. There comes a time, however, when providing newcomers to the family with a map and some written instructions to help locate the kitchen doesn't cut it anymore. Other solutions are required.

Unlike architecture, the design of software user interface has a short history and it involves only two common interaction types: The Command Line Interface (CLI) facilitated by the keyboard, and the Graphical User Interface (GUI), facilitated mostly by direct manipulation of objects on the screen.

CLI places significant burdens on the user's memory. It requires storage and retrieval of the application's functions dictionary. As a result, a novice user may require a long period of internalization but can gain substantial increase in operation speed over time. The GUI provides the novice user with instant access to most major functions through direct manipulation of objects such as menus and buttons. However, requirements for eye-hand coordination are high and operation is relatively slow because the user needs to locate functions on the screen, then move, point and click the mouse in order to operate the system.

These actions cannot be optimized significantly over time. Moreover, in a desktop environment, the large muscles of the hand are required to perform very delicate and precise motions for which they are not designed. Holding a mouse and staring at the screen for long periods of time, and the need to switch frequently between keyboard and mouse, result in discomfort and even potential injuries to the user. GUI may be dangerous to your health...

ATM machines are a good example for the successful implementation of GUI: These devices support a small set of secure workflows, each with predictable outcome. Interaction time is short and a touch screen affords genuine direct manipulation. Users are prompted with relevant feedback such as "You have no funds in your account" and can cancel an operation before it is executed. Finally, the chances to get a receipt for cash withdrawal but no actual money are very small.

In contrast, Expert Systems complicate the lives of interface designers and their users. Only a fraction of functionality can be displayed any given time, limited by factors such as screen size, network bandwidth, server load and visual load. Additionally, and most importantly, many of the tasks and workflows are not trivial. They require knowledge both of the task and of how the system affords the task--two items that often do not correlate. The software can perform a particular task, but the user interface does not offer an easy way to get to it. Increase in functionality reduces the effectiveness of graphical interface and increases the load on short and long-term working memory. Training and retention are a real issue as well as standardization of workflows across an organization. Most Expert Systems have a high learning curve that is closely linked to the limitations of the user interface in bridging the expert user with the expert system.

We have a long way to go before Microsoft Windows and other computing de-facto standards change to facilitate transparent correlation between work-related tasks and system functionality. Until such developments occur, work with real users is a methodology that can insure successful interfaces.

First posted on: Friday, September 01, 2006

No comments: