This book is aimed at the member of your software development team who is responsible for the Human-Computer Interface. Many applications are seriously damaged by the lack of expertise in this area. The importance of well-designed HCIs extends across the entire range of computer applications. It is all very well having highly qualified people working on safety critical, high integrity or mission critical software but a poor HCI design can undo all their careful work. For example, a medical program that correctly calculates the drug dosage required in the treatment of a patient is a menace if the result of poor interface design is that the nurse misreads the screen and give the patient the wrong dose.
The reason that I raise this issue is because I have seen far too many applications where the quality of the programming has been made irrelevant by the poor quality if the interaction between the user and the software.
In this book Barbara Mirel tackles all aspects of the way software interacts with the user. If your team already has someone responsible for the HCI of your products, encourage them to read this book and discuss the resulting issues with you. In the context of a team it might also be helpful to make this book a team study effort so that you all better understand those extra constraints on the total product that are necessary to convert excellent software into excellent usable software.
You will get some idea of the detail with which the author tackles her task when you realise that the final section of the book (a single chapter) deals with the politics of getting the earlier chapters accepted and implemented in a work environment.
In the earlier chapters the reader will learn about appropriate mechanisms for data capture, suitable ways to display data (the author is an expert on information visualisation techniques) and how to help the user to use an application correctly. Years of experience with computers often lead software developers into a state where they have an implicit understanding of overly complex displays. Just as we should be careful to test software on typical hardware rather than some bleeding edge computer we are using for development (you should be so lucky) we should also be carefulto test our software on the typical user. However one problem here is that the typical user is often unable to articulate what it is about the HCI that is proving unhelpful. Worse, when such comments are made the tester often explains how the software is intended to be used, thereby making the test subject more knowledgeable than the typical user. I wonder if we should be using double blind testing of interfaces.
Despite the quality of the presentation provided by the publisher this book will not be a quick study. Nonetheless I believe that either this book or one like it should be on the reading list of most aspiring software developers. This book has a strong theoretical basis but focuses very much on the practical needs of the commercial practitioner.