Hacker News new | ask | show | jobs
by jordanlev 3539 days ago
Joel Spolsky's "User Interface Design for Programmers" is concise, educational, entertaining... and free (even an easy-to-read all-in-one HTML page):

http://www.joelonsoftware.com/uibook/fog0000000249.html

Also highly recommend Steve Krug's "Don't Make Me Think" (as others have already commented): http://www.sensible.com/dmmt.html

2 comments

If there is one UI design book to read, "dont make me think" is it. And if you don't have time for it's already speedy read, the entire book gets summed up in the title: Don't make your users think about how to use your software.
From Joel Spolskey page:

> "Another example from the world of Microsoft Windows is the Alt+Tab key combination which switches to the "next" window. Most users would probably assume that it simply rotates among all available windows. If you have window A, B, and C, with A active, Alt+Tab should take you to B. Alt+Tab again would take you to C. Actually, what happens is that the second Alt+Tab takes you back to A. The only way to get to C is to hold down Alt and press Tab twice. It's a nice way to toggle between two applications, but almost nobody figures it out, because it's a slightly more complicated model than the rotate-among-available-windows model."

I don't think anybody who used OS before expects a different behavior, most users know that alt tab toggles between recent apps

Yes, it's a bit dated (check out those screenshots!)... but the fundamental concepts are still valid. He's trying to explain that you should make programs behave as the user would expect them to -- but it's up to you as the developer to use your judgement to know what the common expectations of the time and platform are.
I was taught this as "The Principle of Least Surprise" or do the thing that causes the least surprise.

Where it gets tricky is that as programmers we are also power users and our mental model of what we expect to happen and what a user expects to happen diverge, I try to have empathy for the user.

One of my tricks is to imagine what my mum would expect to happen (not because she's a woman, it's not a sexism thing I hasten to add) but because she's a 60yo woman who didn't start using a computer until she was in her 40's and is slightly wary of them still.

If it passes the mum test then I know I'm on the right track.

Insightful quote but I disagree that users 'get' Cmd+Tab. I have to explain it to most people.

Maybe you just have smarter friends. ;)

Alt Shift Tab makes the cycle go backwards.