||Prototyping serves two primary functions, to evaluate
the user interface design, and to test various
architecture and technology choices.
The biggest mistake made in prototyping is to use the
prototype to build the actual product. It is very
important to discard the entire prototype and start over
when building the 'real thing.' Of course, some code
fragments can be brought over, but every prototype is a
kludge that was built and rebuilt many times; as such, it
simply should not be used in the real product.
A good prototype, coupled with good design practices,
should enable developers to replicate prototype
functionality very quickly, often in days, using a clean
architecture and good practices.
Good prototypes will be very aggressive in trying
different things, from UI flow to various architectures to
find the optimum result. Even though prototyping may
take a fair amount of time (weeks or even months), it is
time well spent, as a great many lessons are learned on
this 'practice' code. In the end, the final product
will come together quickly and smoothly, since everything
will have already been worked out.