I recently read programmer-turned-consultant David S. Platt's latest book, Why Software Sucks . . . and What You Can Do About It. (Upper Saddle River, NJ: Addison-Wesley, 2007.) It's written in the least technical language possible, so it would be easily understood by laypeople (non-geeks). Filled with scathing descriptions of poorly designed software and clunky websites, contrasted with examples of good software and sites, the book is at times very funny, but at times a little obnoxious. It's the kind of book you'll either really have fun with, or decide is a complete waste of time. Although I think it's worth reading just for the tale of the "fork hole," a very geekly experiment he and a friend of his did with dinner forks at a restaurant.
After a brief overview of what types of things are actually difficult to program verses what kinds of things are "simply a boneheaded design decision," he goes on to demonstrate that most of the most frustrating, annoying "features" have no good reason behind them other than the designer's basic assumption that everyone will like what they like. They add features that users don't care about and make the things the user does care about unnecessarily difficult. (I'm thinking of some software I use at work that makes me change my print settings every single time I log in. Why the heck can't retain my settings?) The point Platt stresses is "your user is not you." Where the designer might value a high degree of control, the user would prefer something easier to use. For example, Google (held up as a good example) senses the user's geographic location based on their IP address and automatically supplies the correct language home page. The minority of users who need a different language can then go to the effort of changing it. By contrast, UPS (lambasted and ridiculed as a bad example) gives everyone the same home page and, before they can do anything else, makes them select a country before they can do whatever they came to the site to do. This is only two clicks if you're in the U.S., but it's ludicrous if you're anywhere else.
As one of the judges from Microsoft's 2003 Imagine Cup programming contest, Platt described the kinds of good, bad, and ugly applications that were written by the competitors. Of interest to those of you here in Omaha, the winner of the contest (whose software solution Platt endorsed as an example of something done right, for the right reasons, to solve the right problem) was Tu Nguyen, a young man who designed an order translation system for his father's restaurant. And although Platt does not name the restaurant for which Nguyen developed this technology, I know it because I've eaten there and seen it in action: Saigon on West Center Street. It's pretty nifty. Since bilingual Vietnamese-English waitstaff are rare in these here parts, the staff at Saigon have PDAs into which they enter customers' orders. The orders then go immediately to the kitchen without the staff having to walk back there, and they are translated into Vietnamese, complete with all the various "hold the ___" and "a little extra ___" things the customer may request. No more misunderstood orders. (If you live in Omaha, go to Saigon and check it out. Technology aside, their food is wonderful. Especially the catfish hot pot.)
Back to Platt's book, after teaching the reader how to recognize poor design, he encourages us, among other suggestions, to buy good software (and, by extension, not buy bad software), to tell manufacturers of software you use what you like and don't like about it, and to ridicule the heck out of bad software and websites on "Hall of Shame" sites in order to embarrass them into fixing their suckware. Overall, his book isn't exactly world-shaking, but it is a fun and informative read.
Corridors of Blood
10 months ago