Joel Spolsky has a book on User Interface Design. It is also partially available online.
User Interface Design for Programmers (Paperback)
by Joel Spolsky
Most of the hard core C programmers I know hate user interface programming. This surprises me, because I find UI programming to be quintessentially easy, straightforward, and fun.It’s easy because you usually don’t need algorithms more sophisticated than how to center one rectangle in another. It’s straightforward because when you make a mistake, you immediately see it and can correct it. It’s fun, because the results of your work are immediately visible. You feel like you are sculpting the program directly.
I think most programmers’ fear of UI programming comes from their fear of doing UI design. They think that UI design is like graphics design: the mysterious process by which creative, latte-drinking, all-dressed-in-black people with interesting piercings produce cool looking artistic stuff. Programmers see themselves as analytic, logical thinkers: strong at reasoning, weak on artistic judgment. So they think they can’t do UI design.
User Interface Design for Programmers – Chapter 1
To summarize, designing good software takes about six steps:
- Invent some users
- Figure out the important activities
- Figure out the user model — how the user will expect to accomplish those activities
- Sketch out the first draft of the design
- Iterate over your design again and again, making it easier and easier until it’s well within the capabilities of your imaginary users
Watch real humans trying to use your software. Note the areas where people have trouble, which probably demonstrate areas where the program model isn’t matching the user model.