Page 60 -
P. 60

CHAPTER 2  THE PROCESS                                              31

               FIGURE 2.5
               The prototyping
               paradigm
                                    Listen to                                 Build/revise
                                    customer                                   mock-up











                                                          Customer
                                                          test drives
                                                          mock-up







                              a prototype. The prototype is evaluated by the customer/user and used to refine
                              requirements for the software to be developed. Iteration occurs as the prototype is
                              tuned to satisfy the needs of the customer, while at the same time enabling the devel-
                When your customer
                has a legitimate need  oper to better understand what needs to be done.
                but is clueless about  Ideally, the prototype serves as a mechanism for identifying software requirements.
                the details, develop a  If a working prototype is built, the developer attempts to use existing program frag-
                prototype as a first
                step.         ments or applies tools (e.g., report generators, window managers) that enable work-
                              ing programs to be generated quickly.
                                But what do we do with the prototype when it has served the purpose just
                              described? Brooks [BRO75] provides an answer:

                              In most projects, the first system built is barely usable. It may be too slow, too big, awkward
                              in use or all three. There is no alternative but to start again, smarting but smarter, and build
                              a redesigned version in which these problems are solved . . . When a new system concept
                              or new technology is used, one has to build a system to throw away, for even the best plan-
                              ning is not so omniscient as to get it right the first time. The management question, there-
                              fore, is not whether to build a pilot system and throw it away. You will do that. The only
                              question is whether to plan in advance to build a throwaway, or to promise to deliver the
                              throwaway to customers . . .

                                The prototype can serve as "the first system." The one that Brooks recommends
                              we throw away. But this may be an idealized view. It is true that both customers and
                              developers like the prototyping paradigm. Users get a feel for the actual system and
   55   56   57   58   59   60   61   62   63   64   65