There are many advantages to using prototyping in software development, some
tangible some abstract.
Reduced time and costs: Prototyping can improve the quality of
requirements and specifications provided to developers. Because changes cost
exponentially more to implement as they are detected later in development, the
early determination of what the user really wants can result in faster
and less expensive software.
Improved and increased user involvement: Prototyping requires user
involvement and allows them to see and interact with a prototype allowing them
to provide better and more complete feedback and specifications. The presence of
the prototype being examined by the user prevents many misunderstandings and
miscommunications that occur when each side believe the other understands what
they said. Since users know the problem domain better than anyone on the
development team does, increased interaction can result in final product that
has greater tangible and intangible quality. The final product is more likely to
satisfy the users desire for look, feel and performance.