As a visual interface designer (and a reviewer of this book while in its manuscript stages), and as someone who has worked for fifteen years in software interface design, I recommend this book. The authors are experienced designers themselves, and this book is strong on both theory and practical advice. It can be read through in page order or used as a reference for just-in-time help. The text provides detailed advice about how to select and use appropriate tools for building various kinds of prototypes, how to plan for the full range of prototyping activities, and guidelines for basic visual interface design. As far as I know, there is no other text available covering this range of topics.
The authors also talk about important process issues, and talk about how prototyping is used to learn not only about product features but also about users and markets. They argue that prototypes are a risk-reducing activity, and this business case for prototyping may the best way to promote adoption of more and better prototyping practices.
The text is well organized and does a good job of identifying appropriate techniques for early, mid-term, and late development phases. This won't substitute for actual professional experience, but it will undoubtedly save many readers from choosing the wrong method at the wrong time. The book is a virtual template for best practices in software prototyping.
Another important aspect of the book is the author's attention to the value of prototyping in supporting collaborative work and building a shared sense of purpose and strategy among teams. It's another argument that ought to appeal to management.
This is an ideal text for software engineers and designers who have not done much prototyping as well as students in engineering, design, and human factors. I recommend it to my own clients who are still developing their capability in this area. A basic familiarity with the aspects of prototyping presented in this volume should really be considered a part of the fundamental knowledge base of anyone in the software development field.