Monday, May 5, 2008

Book Review: User Interface Design for Programmers

User Interface Design for Programmers[2]I read Joe Spolsky's book "User Interface Design for Programmers" over the weekend. It is an excellent book for programmers by a programmer about making your programs more useable. I think it is a must read for all developers. The writing style is very entertaining and easy to read.

Joel works on his central axiom for user interface design "A user interface is well designed when the program behaves exactly how the user thought it would". No small task to be sure. As software developers we tend to design our applications to work the way we do not realizing that we are not a typical end-user.

There are several ways to help us design a better UI. The first is the idea of "personas" which are fictional users. I first read about personas in Alan Coopers book "The inmates are running the asylum" which is an excellent book describing the need for good UI design. By using a persona when designing the application we focus more in on how the application will be used which ultimately makes the software more usable.

Another very useful tool is the use of usability testing. Joel has an entire chapter which discusses usability testing and how it can be best used. I found two points, in particular, to be very useful. First usability tests do not have to involve a lot of people. In fact, most usability problems can be discovered by a group of about 6 testers. Second, it is very beneficial for software engineers to actually watch a typical user use their software. What seems obvious to you as the developer may not always be obvious to a secretary, accountant or sales person.

The book is less than 200 pages and I found it very easy to read. Joel uses many examples from programs and operating systems from the early 2000s which I found very familiar. He has a great sense of humor and a very self-deprecating style which I enjoyed. I found the information very useful and I hope to incorporate his ideas into future projects.

No comments: