Many software products are developed using prototypes. The prototyping makes an integral part on these software projects. Let us understand the impact of prototyping on software projects.
Suppose you decided to organize a party for your friends. You start thinking about organizing everything for the party which needs to be done. You need to create invitations for all the people you want to invite. Once your list gets completed then you contact these people for inviting them for the party. But before doing that you also need to decide about the venue, the date, the time etc. for the party so that you can tell friends. Then you need to decide what activities will be done in the party. If some games need to be included? What will be the menu for the food? If you need to engage a caterer for taking care of the food or you want to prepare the food yourself?
You can imagine there are hundreds of things which need to be planned and managed for a single party. You can sit down and make plans for the party. The first time you sit and make your plan. Later you realize you missed some points about the party and then included them in your list of things to be done. You will go over your plan many times and only then all things for the party will be included in your list of things for the party.
You can realize that you have been iterating oveer your plans for the party many times. Only after so many iterations, your party plan looks good.
The same is true for most things in life including developing software products. When requirements for a software products are gathered for the first time, many things may have been missed. Only after a few iterations, most things you may have wanted your software product to do may be included in the software requirement list.
Now software development is done for your customer. The first time you gathered his/her requirements; some things may be missing. Without finding further if you develop a software product on this set of requirements, chances are that the software product may miss many things which the cusstomer could not have gathered in the first iteration.
Human beings have a brain which works on the principle of doing things better the next time. It can not recall all the details of things which might be required for making a plan. Only when the plan is revisited then the brain can visualize things better by having more details about a thing. The brain always makes a mental map of things. When the thing is revisited then the brain finds more details and thus a better mental map of thing.
If you can create a prototype of the software product based on the first set of requirements ou have gathered and showed it to the customer, then the customer can play with this prototype and can find out what is missing in the prototype compared to what he/she is looking for. You can then incorporate the missing things in your prorotype and then show it to the customer. Over 2-3 iterations your prototype will be pretty good to have captured almost all requirements.
From this prototype you can easily design and build your product. The software product thus built will definitely be a good fit for requirements of your customer and thus it will definitely be a success story.