Prototyping is a proven and inexpensive way of demonstrating and evaluating a concept with real users before it's released to the user base. There are many fidelities that are possible with prototyping including:
Prototyping is a valuable tool to test out concepts early in order to validate concepts for development or test later stage systems with users where there is still enough time to make changes to the production code before it's released. It's much more efficient to test early and test often than to wait until everything is fully developed before showing it to users. They always surprise you and it's better to have those surprises earlier rather than later as it's much easier to implement changes earlier on in projects.
I have experience designing and implementing prototypes of a wide variety of fidelities dependent on the type of project, the stage of the project, the concept being validated, and a host of other factors.
Sketching for prototype design
I have run quick concept validation sessions using printed out, paper wireframes and simple clickable prototypes and further refined prototypes to test concepts. I have also run more formal usability testing with both clickable wireframes, clickable mockups, and also fully developed prototypes using hand-coded HTML/CSS/JS where prototyping tools weren't able to provide the type of experience I wanted to evaluate.