Software for Use

Larry L. Constantine and Lucy A. D. Lockwood
Addison–Wesley, Reading, MA, 1999.
532 pp., $44.95(hardbound). ISBN 0-201-92478-1.

Stating that software is to be written for humans to use is a phrase that should provoke a sarcastic reaction questioning the intelligence of the one uttering it. If that were always the case, then there probably would be a comic strip similar to the immensely popular Dilbert strip devoted to this topic. Unfortunately, time pressures, complexity, ignorance, and low user expectations combine to make it all too common that the phrase "user friendly" might as well be a mantra in whale song. Some projects are developed without any input from those considered the target customer base and in others, the input is solicited only to be ignored or belittled. The authors of this book argue for the insertion of what they call "usage-centered design" into the intense, often chaotic process of building software.

Chapter 11, "Help Me If You Can: Designing Help and Helpful Messages," made the greatest impression. Throughout the history of software development, the creation of genuinely helpful documentation has been an art woefully MIA (muddled, incomprehensible, and abstruse). Even the most intuitive of interfaces will occasionally leave you baffled, or you will click on the wrong item or press an inappropriate key. The development of essential use cases for help distills the topic down into eight statement prefixes that any parent of a young child faces several times a day. Some of the best advice for creators of online help comes from the basic principles of newspaper journalism. Get to the point. Tell the whole story in the headline. Tell the whole story in the first sentence. Tell the whole story in the first paragraph. Or the even blunter advice, "Make your help help."

The most significant advance in the design of user interfaces has been the creation of the icon. A section called "'eye-con' design" brings things right to the point—it is the eye that matters. With so little area available, the creation of quality icons is a real art form. However, it is something that can be learned and this section that should be required reading before you open the drawing program.

No book that promotes the user can be complete without extensive treatment of the World Wide Web. While there is no doubt that the Web has changed the world, as is properly pointed out, programming for the Web does not differ all that much from "traditional" programming. The authors' approach is summarized in the caption, "The chaos and complexity of the Web places a premium on such old-fashioned virtues as making it clear to users where they are and how they got there." I would add the additional line, "and clearly showing them what they should do." This philosophy is backed up by experience, where users will generally not wait longer than the number of seconds they can count on their fingers. Users also avoid sites that are difficult to navigate or unclear as if they were in monochrome.

If there is a weakness in this book, it is the lack of clear examples. As the author highlights in several places, many people function well in their jobs without thinking a great deal about it. However, if they are asked to codify what they do and how they do it, problems arise. Only clear examples can demonstrate the true path to understanding. This is especially telling in the section on Web design. While there is a diagram illustrating a poorly designed online form, there is no example of a good one. A link to a site demonstrating a well-designed form would be an enormous improvement. There is a Website listed on the back cover, but it is the site of the company where the authors work and any material directly related to this book is not readily apparent.

There is so much valuable material in this book that it is only possible to highlight a few of the most striking items. If and when I ever go back into the chaotic world of software development, purchasing copies for each member of the team will be written into the budget, along with the necessary time to read and discuss it—probably the highest ROI that the project will have.