Effective Prototyping is an ambitious undertaking that in some ways redefined the meaning of prototyping for me. No reader is likely to absorb this tome from cover to cover—certainly not in one sitting and maybe never. The authors have tried to include as much information as possible on the topic, resulting in an extensive reference that paradoxically leaves me unsatisfied.
According to the authors, “Effective prototyping uses the right prototyping tool, method, and process given the appropriate need.” Then, the authors suggest that, because there is no other book on the topic, none of us is actually creating “effective” prototypes. This provocative introductory remark is the first of many statements I suspect a good editor would have helped restate. With the gauntlet thrown, my expectations for the book were raised far beyond what the authors could deliver.
I do not fault the sheer volume of information the book provides. For many, especially those new to the notion of prototyping, the breadth and depth of discussion about prototyping would make Effective Prototyping an excellent textbook. Irrespective of your experience with prototyping, the book would be an excellent reference manual—especially in support of your efforts to integrate prototyping into your software development processes.
For the most part, I do not fault the overall organization of the book. The authors break the topic into four logical chunks that are typical of any development effort.
I do not take issue with the need for this book. I believe it is an important topic, with which every software development team should be familiar, if not facile. I even agree with the authors’ primary thesis that much of the prototyping being done today is ineffective—either underachieving or overachieving.
My primary criticism of the book is that it’s just too much. It covers too much ground in too much detail. Additional editorial cycles would have helped. The prose could be much crisper and make its points much more succinctly.
What frustrates me most about the book is its structure—it practically screams to be a workbook, but the authors have not designed it to work as one.
Lastly, I take issue with that argument the authors posit in the Preface: That, because no book on this topic has existed before, nobody has been building “effective” prototypes. This statement might reveal a too narrowly conceived audience. Perhaps the authors believe their book is best suited for software development teams who are doing prototyping too late, with too much investment, or worse, teams who are not doing it at all. I believe the book is suitable for the uninitiated and the guru alike—each for different reasons.
For the uninitiated, the first half of the book makes the case for doing appropriately scaled and designed prototypes. For the guru, the latter half of the book brings together, in one easy-to-scan collection, several techniques and how-to’s for creating prototypes.
The Preface and first couple of chapters provide historical background, present a bird’s eye overview of the authors’ prototyping process, and most importantly, establish their thesis about “effective prototyping.”
After providing these initial background discussions, the authors cover their remaining material in a logical flow of four phases: planning, specifying, designing, and implementing prototypes. Each phase comprises chapters that cover more specific topics, which are, for the most part, appropriate to the phase.
- Phase 1: Plan Your Prototype—Covers developing requirements through defining prototype fidelity.
- Phase 2: Specification of Prototyping—Describes prototype “characteristics, methods, and tools.”
- Phase 3: Design Your Prototype—Provides a series of design criteria and a heuristic for designing a prototype.
- Phase 4: Results of Prototyping—Begins with review, validation, and deployment and concludes with several chapters on specific prototyping methods.
It isn’t practical to try to describe all of the chapters in depth in this review. Nor is it possible to simply describe one chapter as an example that is representative of all the others, because each chapter is organized according to need, without following any global template. Again, this approach to the material suggests that at least one additional cycle of editing and graphic design could have improved the readability of the text.
In brief, the book includes the following:
- Table of Contents
A detailed listing of each chapter’s title and subheadings that helps provide an overview of the entire book.
In their Preface, the authors make a strong argument for “effective prototyping” and describe issues with waterfall software development practices. The preface also presents the structure of the book, introducing its four phases and eleven steps.
- Chapter 1—Why Prototyping?
In this chapter, the authors offer definitions of prototyping, give some of the history of prototyping, and provide some rationales and justifications for prototyping. This chapter also introduces “ArnoSoft”—the fictional company that is the focus of scenarios at the end of each chapter.
- Chapter 2—The Effective Prototyping Process
This chapter describes the authors’ eleven-step process in brief.
Phase 1 | Plan Your Prototype
- Chapter 3—Verify Prototype Assumptions and Requirements
The authors explain how prototyping transforms assumptions about a product’s design into bona fide product requirements.
- Chapter 4—Develop Task Flows and Scenarios
This chapter presents several techniques for documenting user tasks and creating scenarios.
- Chapter 5—Define Prototype Content and Fidelity
In this chapter, the authors describe the relationship between a prototype’s fidelity and its content.
Phase 2 | Specification of Prototyping
- Chapter 6—Determine Characteristics
The authors describe eight characteristics of prototypes and why they are important.
- Chapter 7—Choose a Method
The authors present nine different prototyping methods and give guidance for determining which method to use on a specific project as well as examples of each prototyping method.
- Chapter 8—Choose a Prototyping Tool
In this chapter, the authors distinguish between methods and tools and describe how to determine which tool to use.