In User-Interface Prototyping, the user interface is developed quickly to explore the user-interface design and the system's requirements. Sometimes a special-purpose prototyping language is used; other times prototyping is done in the target programming language. User-interface prototypes are either thrown away or evolved into the final product. Making the right choice about whether to evolve the prototype or throw it away is one key to success. Other keys to success include involving end-users appropriately, keeping initial prototype implementations as simple as possible, and using experienced developers.
Potential reduction from nominal schedule:
Improvement in progress visibility: