Operational Prototyping was proposed by Alan Davis as a way to integrate
throwaway and evolutionary prototyping with conventional system development.
"[It] offers the best of both the quick-and-dirty and conventional-development
worlds in a sensible manner. Designers develop only well-understood features in
building the evolutionary baseline, while using throwaway prototyping to
experiment with the poorly understood features."
Davis' belief is that to try to "retrofit quality onto a rapid prototype" is
not the correct approach when trying to combine the two approaches. His idea is
to engage in an evolutionary prototyping methodology and rapidly prototype the
features of the system after each evolution.
The specific methodology follows these steps:
An evolutionary prototype is constructed and made into a baseline using
conventional development strategies, specifying and implementing only the
requirements that are well understood.
Copies of the baseline are sent to multiple customer sites along with a
trained prototyper.
At each site, the prototyper watches the user at the system.
Whenever the user encounters a problem or thinks of a new feature or
requirement, the prototyper logs it. This frees the user from having to
record the problem, and allows them to continue working.
After the user session is over, the prototyper constructs a throwaway
prototype on top of the baseline system.
The user now uses the new system and evaluates. If the new changes
aren't effective, the prototyper removes them.
If the user likes the changes, the prototyper writes feature-enhancement
requests and forwards them to the development team.
The development team, with the change requests in hand from all the
sites, then produce a new evolutionary prototype using conventional methods.
Obviously, a key to this method is to have well trained prototypers available
to go to the user sites. The Operational Prototyping methodology has many
benefits in systems that are complex and have few known requirements in advance.