Spolsky and me

Thursday, January 04, 2007 at 9:48 AM

Posted by Mike Morton, Member of Technical Staff, Mac Team

One of the nice things about working for Google is that even though we engineers have a lot to do in our day jobs, we’re encouraged to learn new things. We attend "tech talks" (which aren’t always technical, despite their name), tackle 20% projects, take training courses, and so on. Among the things I do is try to read one technology book each quarter. That can be a lot of effort, given the complexity (not to mention the sheer mass) of some of these books.

Last quarter, I read User Interface Design for Programmers by Joel Spolsky, host of the popular Joel On Software. It was more interesting — and more useful — than I expected.

It’s also short (about 140 pages paperback) and fairly light reading, a rare pleasure in a technology book these days. I recommend it. My only complaints are that it’s five years old and mostly covers Windows (so it’s really 15 years old in Mac years). Most of the book revisits things we (should) already know: user-centered design, the user’s model, the importance of usability testing. Spolsky is great at explaining these things succinctly and memorably.

Here are some of his thoughts, which I think are worth keeping in mind, even though I don’t agree with all of them:
  • Usability testing of five or six users tells you all you need. You’re looking for big problems, not statistical significance on the small ones.
  • Users want to accomplish their tasks, not use your features ("users care about a lot fewer things than you might think").
  • Usability isn’t the same as learnability, and “usability testing” usually tests the latter.
  • So what if 30% of users fail to accomplish the task in testing? Those people will ask for help or read the doc, or aren’t your target users, anyway.
  • Karen Fries at Microsoft invented the Wizard as a way to teach you how to use the usual UI, not to do the task for you.
  • Users don’t read (documentation or dialog instructions).
  • Users can’t use the mouse as easily as you think.
  • Invent imaginary users, name them, and talk about them to make them seem like real people, which they do represent.
  • Icons work well to represent nouns, but not verbs.
My favorite quote: "Pull up the Tools > Options dialog box and you will see a history of the heated arguments that the software designers had about the design of the product." That’s not exclusively a Windows problem — the same is true if you select Preferences from the application menu on a lot of Mac products. The next time I have the urge to say “Let’s just make that a preference setting," I should keep this book in mind.

If you have time to read only one chapter, read “The Process of Designing a Product," which describes Activity-Based Planning. It’s one of several chapters you can read for free on Spolsky’s site, but as he points out, the published book is more polished, and you might enjoy it enough to read the whole thing.