A prototype is a software microcosm. It is a miniature version of the final application that you want to study. By building a smaller version of the program, you can learn a lot about the larger application in a much smaller amount of time. A prototype lets you make mistakes in miniature, where they are easy to fix, rather than waiting and making the same mistakes in the final application. You can use a prototype to define an application's features, verify that the program will satisfy the customer's needs, test untried technology, and refine the development team's skills.
You can even use a prototype to predict the final application's overall success. If you use a prototype correctly to guide development past potential mistakes, your success is almost assured.