b>The Barnes & Noble Review
Why do so many programmers hate building user interfaces? OK, some think users are morons -- you know, "lusers." But there's a bigger reason: real insecurity about their ability to do this (allegedly) "artistic" work. Truth is, you can build really good UIs by combining a few basic rules and principles with some good-old-fashioned common sense. Joel Spolsky has gathered all these into one terrific book: User Interface Design For Programmers.
Rule No. 1, Spolsky says, is this: "A user interface is well designed when the program behaves exactly how the user thought it would." So how do you figure out what users expect, realizing that (as a programmer) you aren't one of them? Ask a few (it doesn't have to be many). And think more clearly about what you're doing.
For example, should users really have to decide how big the Help database index ought to be, when she merely wants to know how to turn an image upside down? No choice is often better than interrupting the user's workflow with a decision that's irrelevant to their goals.
Spolsky shows how to use metaphors (including when to use them, and how to avoid bad ones.) You'll see why tabbed dialogs work (except when they start jumping around "like restless children on Class Photo Day"); and why other metaphors, such as My Briefcase, were screaming failures.
Spolsky advocates designing as if your users can't read, can't use a mouse well, and "have such bad memories they would forget their own name if it weren't embossed on their American Express." (As Spolsky emphasizes, they're rarely that dumb, but are often preoccupied with more important matters.) He also offers practical guidance on using heuristics (why it's OK for Word to replace "teh" with "the," but never to tell you "It looks like you're writing a letter"?)
Spolsky offers quick introductions to the process of effective user interface design, and the realities of user interface testing (what you can legitimately discover via up-front testing, what you can't, and why you'd better make sure the developers are watching through the one-way glass). The book concludes by applying its principles to web design, with its added challenges -- the limitations of HTML, and time delay associated with round-trips to a server, which tend to make web interfaces feel clunky at best. You'll learn why less web user interface is usually better (it means users will rely on hyperlinks and their browser controls, which they might actually understand by now.)
User Interface Design For Programmers is a pleasure to read. It doesn't just demystify user interface design, it humanizes the subject. Heck, even makes it fun.(Bill Camarda)
--Bill Camarda is a consultant, writer, and web/multimedia content developer with nearly 20 years' experience in helping technology companies deploy and market advanced products and services. He served for nearly ten years as vice president of a New Jersey-based marketing company, where he supervised a wide range of graphics and web design projects. His 15 books include Special Edition Using Word 2000.