A critical review of Spolsky, 2002, 'User Interface Design for Programmers'
Rachel Graves2013-05-09 00:00:00 +0000
Using a series of examples from his professional experience and opinion, Spolsky examines the topic of user interface design in software across a variety of operating systems and platforms. This book aims to provide software engineers who have little to no experience and knowledge in the field of user interface design with further knowledge, so that they can produce better user interfaces. The book has two themes: it explains a series of examples of bad user interface design, and then presents alternative examples where the interface was improved to be more useable. It then describes the theory of user interface design and testing on specific topics.
Spolsky first discusses the theory of the user model and the program model. This is perhaps the most useful lesson in the book for a programmer as it encourages them to program to cater for the user model, rather than force the user model to cater for the program model.
The chapter ‘Affordances and Metaphors’ expands on both themes. Spolsky describes how metaphors can be used to give a user hints about how an interface works (a magnifying glass can be used to imply the ability to zoom in). An example describes a configuration dialog from Netscape Navigator, with a lefthand navigation panel, and a righthand panel with each section’s options. Spolsky explains that it is not clear to an inexperienced user that clicking on objects in the navigation panel will affect the righthand. He then uses an example where the Microsoft Word team started using tabbed dialogs (where sections are depicted using tabs, similar to dividers in a ring binder) to improve usability. However, Spolsky does not discuss in detail why usability was improved, or what metaphor improves the user experience, he instead says “It’s really obvious which tab you’re on, and it’s really obvious how to switch to a different tab”.
Further problems arise when Spolsky contradicts himself. In chapter 7 Spolsky describes a wizard (a question and answer dialog to make tasks easier) from Microsoft Powerpoint: “Almost anyone could figure out how to open and create files using the menu commands; this dialog really only helps absolute beginners”. However, in chapter 12, he creates a wizard stating “Users will suddenly find it much easier to get started with your program without having to browse through menus”.
In summary it has to be admitted that the book is useful for the intended audience. However, the extent in which the book is good at educating the reader depends on the verbosity of Spolsky’s explanations throughout. Further explanation of some topics would be useful in helping the reader to understand these better practices. Furthermore, the contradictions may leave the reader confused about which approach to use.