Easy and Other Lies
Easy and Other Lies
No word in the computing industry is more abused than the word "easy."
Well, "performance" is a pretty battered concept as well, but along with closely related notions of "usability," "ease of use" and "user friendly," the idea of easy has been the industrys challenge and its curse ever since computing spread beyond the glass house in the early 1980s.
In preparing to speak at a forthcoming conference on usability, the Make IT Easy conference in Toronto in mid-May (www.ibm.com/easy), Ive been thinking about how the idea of usability can be approached productively in a nontraditional area, server software.
In contrast to desktop applications, server products are deployed in small numbers, are expensive to license and offer narrow but deep functionality. Most importantly, from the usability perspective, server software manufacturers assume that their products will be operated by IT high priests who are willing to attend vendor training classes and work with vendor consultants to achieve operational competency.
This combination of design requirements, inertia and economic disinclination for change has left server software far behind end-user software in the attention it gets from usability specialists.
These factors by no means excuse the industry from its laxity. Usability is fundamental to an organizations ability to be successful with and extract maximum value from its IT infrastructure. Usability is also a major factor in whether administrators make or avoid security configuration mistakes.
There are three key tasks that a server products interface must do well to achieve sufficient usability. It must instruct, inform and enable.
First, the instruct phase is very important during initial configuration but also later when an administrator needs to come back to an infrequently used task in an emergency, say when a motherboard fails, and quickly learn how to carry it out under pressure.
Quality documentation is also a big part of overall usability. Windows Server 2003s Manage Your Server wizard provides the best example of a simple but far-reaching server configuration tool Ive yet seen. Windows 2000 Server and Windows Server 2003s scenario-oriented help, background technical information and reference documentation continues to be unmatched in its depth, instant accessibility, search features, comprehensiveness and quality of writing.
Second, interfaces must inform to help administrators quickly determine what operational data is important and which data points need special attention. Although passive monitoring is a regular part of server software operation, information-rich, context- and history-aware status displays are almost nonexistent.
Third, interfaces must enable staff to use them productively and in expressive ways. If the heat from the Linux-versus-Windows-interface flame wars were redirected, we could eliminate our oil imports, but one testable characteristic of an enabling interface is composability. I define this as the ability of an interface to let users do more complex tasks by combining different sequences of simpler, easy-to-learn tasks.
The Unix and Windows command shells ability to pipe the output of one command to the input of another is a classic example of this, but a less obvious one is a universal clipboard. For example, one files contents can be inserted into anothers by issuing whatever an editors command for "insert file at cursor" is. Alternatively, a user can do the same task by opening the second file in another editor instance and copying and pasting the text into the first window. Both approaches are powerful, but for occasional users, building with bricks is much faster than having to mix mud and grow hay all the time.
Programs that provide both composable and dedicated command facilities are far more usable than those that take just one approach or the other.
Adopting packages that fail the usability test will cost big down the road in training and frustration. Even worse, when an emergency arises, staff may end up flailing around trying to remember how to proceed while systems fail around them. Address usability problems before its too late to do anything about them.