Alan Cooper, The Inmates are Running the Asylum
It is ironic that a book so concerned with the quality of a person's experience should be so callous with that of its reader's. This is one of the ugliest books I've read. A team of thirteen (including an “interior designer” and two “layout technicians”) couldn't keep endorsements from covering both sides of the fly-leaf and the illustrations from looking like clip-art. Cooper claims his illustrator “did a remarkable job”, but his art directors would have done well to omit those images entirely.
No book in recent memory has inspired so many growls and groans. Cooper presents some useful information, but that doesn't redeem his work any more than a hodgepodge of features can save the computer programs Cooper excoriates. Why must using a computer make us feel stupid?, Cooper demands. Well, why should reading a book make us so angry?
Aesthetics aside, The Inmates are Running the Asylum was an insightful read. Cooper believes that software development has been run by programmers, on behalf of computers, for too long. It is time for designers to take over, on behalf of humanity. He's right, of course. As a programmer, I know how easy it is to start writing code before considering what the program has to do, much less what the user hopes to accomplish.
To save you the annoyance of reading this book, here are the main points of the book (Cooper repeats himself often, so there aren't many of them). First, computers should let people get some work done in a pleasant way. Second, programs need to be designed before they're written, by someone who does nothing else. Third, those designers should create personas representing typical users, their backgrounds, and their goals. Fourth, this process should suggest the crucial features of a program, which should be focused on to the exclusion of boundary cases. Fifth, there are numbers between one and infinity: that is, an interface to select from 30 options can simply list them, instead of imposing the hiererarchical format that might be necessary for hundreds or thousands of options.
Altogether, a few useful steps that could dramatically improve the usability and pleasantness of most software. Cooper's descriptions of products his firm designed excellenty illustrate his points. It's a shame there aren't more of them. Maybe if he'd been more attentive to his reader's personal goals, a few of the worthless images of bland-looking people would have been replaced with screenshots from well-designed programs. And maybe then I could recommend this book to others.