Prototyping is a concept that exists in many industries and not just in software development, it is much cheaper and faster to develop prototypes than that which goes into production.
Prototypes aren't supposed to be perfect, the goal is for them to answer possible questions we have.
The main value with prototyping lies in the lessons you learn, the questions that get answered, not the code written.
Some things you may want to prototype:
Architecture
New functionality in an existing system
Structure or contents of external data
Third-party tools or components
Performance issues
User interface design
Prototypes can save us time, money and pain by recognizing and improving potential problem spots early in the development cycle.