Evolutionary Prototyping

Evolutionary prototyping is a lifecycle model in which you develop the system concept as you move through the project. Usually you begin by developing the most visible aspects of the system. You demonstrate that part of the system to the customer and then continue to develop the prototype based on the feedback you receive. At some point, you and the customer agree that the prototype is "good enough." At that point, you complete any remaining work on the system and release the prototype as the final product. Figure 7-8 depicts this process graphically.

image with no caption
Evolutionary-prototyping model. With evolutionary prototyping, you start by designing and implementing the most prominent parts of the program in a prototype and then adding to and refining the prototype until you're done. The prototype becomes the software that you eventually release.

Figure 7-8. Evolutionary-prototyping model. With evolutionary prototyping, you start by designing and implementing the most prominent parts of the program in a prototype and then adding to and refining the prototype until you're done. The prototype becomes the software that you eventually release.

Evolutionary prototyping is especially useful when requirements are changing rapidly, when your customer is reluctant to commit to a set of requirements, or when neither you nor your customer understands the application area well. It is also useful when the developers are unsure of the optimal architecture or algorithms to use. It produces steady, visible signs of progress, which can be especially useful when there is a strong demand for development speed.

CROSS-REFERENCE

For details on evolutionary prototyping, see Chapter 21, Chapter 21."

The main drawback of this kind of prototyping is that it's impossible to know at the outset of the project how long it will take to create an acceptable product. You don't even know how many iterations you'll have to go through. This drawback is mitigated somewhat by the fact that customers can see steady signs of progress and they therefore tend to be less nervous about eventually getting a product than with some other approaches. It's also possible to use evolutionary prototyping within a we'll-just-keep-prototyping-until-we-run-out-of-time-or-money-and-then-we'll-declare-ourselves-to-be-done framework.

Another drawback is that this approach can easily become an excuse to do code-and-fix development. Real evolutionary prototyping includes real requirements analysis, real design, and real maintainable codeā€”just in much smaller increments than you'd find with traditional approaches.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.224.44.108