A prototype is an early sample or model of a system. In computer science, a prototype often takes the form of a software or hardware product with a minimal necessary feature set.

Prototypes are often used to test and gather feedback on a new concept or system.

Prototypes provide a useful mechanism for testing and gathering feedback from the the clients regarding the system. Clients can influence the direction of the development of the prototype such that the final product they get matches their needs more closely.

Prototypes are often used alongside iterative design processes to quickly build a product for market which is suitable to the clients needs.