Book review.

Read Joel Spolsky's book, User Interface Design for Programmers, last night. I consider myself slightly more of a user interface designer than a programmer, so I'm not exactly the book's target market, but I figured I'd learn things about both. And that it'd be presented in Joel's usual straightforward and immensely practical style. I did. And it was. Just 136 pages, it's a quick read (which you gotta love) and is nothing too complicated (which you also gotta love). But in those pages, I marked the bottom corners of 14 of them, which held specific ideas, tips, and principles I realized I could use right now. Not to mention my overall sensitivity to the ease-of-use issue was once again heightened (and I was, once again, embarrassed by the current state of my offerings).

If I had to take issue with any part of the book, it would probably be with Joel's seeming over emphasis of the insufficiencies of the web and HTML for user interfaces (just as I disagreed with his blanket statement, "You can't do good UIs in a web browser."). Now, I don't deny that web UI's are usually clunky and annoying to use—especially compared to native GUI apps. And this includes my own. But Joel uses numbers like 10 seconds and 30 seconds for doing operations in web apps, which in my experience may take that long once in a while, but on a normal basis take more like one second. Maybe this is just a slow-versus-fast connection difference, and Joel's expecting everyone to be on dialup (which might be a safe assumption, depending on who your users are). Also, I think he dismisses the potential of JavaScript and DHTML to solve a lot of the UI issues. He writes them off as not being standard enough, implying they're not really usable. I think there's nothing wrong with using them to give the 80% of your users who have a modern browser a better experience (even though it's a pain in the butt to code and maintain).

Joel finishes his chapter on designing for the web with something I've never seen the usability gurus acknowledge (which makes them very annoying):

Usability is not everything. If usability engineers designed a nightclub, it would be clean, quiet, brightly lit, with lots of places to sit down, plenty of bartenders, menus written in 18-point sans-serif, and easy-to-find bathrooms. But nobody would be there. They would all be down the street at Coyote Ugly pouring beer on each other.

Loved that. That also gives you a sense of Joel's wit, which is replete throughout the book and makes it an enjoyable way to spend a Sunday evening (you know, assuming you don't have girlfriend or something). Recommended.

Addendum: One of the applications Joel uses as an example of why web UIs suck is I just tried it, and he's right: It's painful to use. But I'd blame that more on their servers/application than an inherient problem with web apps.