The term prototyping refers to the development of a sample or prototype in the field of software engineering. Prototyping can be seen as a step-by-step approach to the finished product: In the course of a project, a prototype becomes a finished product - for example a website, an app or a more complex software application. Protoyping is an approach that allows very early feedback from the developers involved and, above all, from the end users by placing a strong emphasis on communication during the development process.
Traditional approaches in software development have some disadvantages.
In the 1980s, studies identified a lack of communication between clients, developers and users as a major disadvantage. Traditional software projects did not fail because of inadequate SDKs (Software Development Kit) or developer tools, but because of missing or unclear agreements. In the waterfall model - a development paradigm common at the time - for example, any errors in a requirements analysis were systematically continued during development. In addition to agile software development or user-centered design, prototyping is a paradigm that attempts to avoid such difficulties and errors.
In general, prototyping methods can be distinguished according to whether they are vertical or horizontal.
In addition, prototyping approaches can be separated by application purposes.
The choice of a suitable model (vertical, horizontal) and an application purpose depends on many different factors in individual cases. The budget, the objective of the project and the actors involved (e.g. external agencies) form the framework for the orientation of prototyping. In practice, model and application purpose can be chosen in such a way that hybrid forms of the distinctions made above are created and individual aspects such as user feedback are particularly emphasized.
Prototyping is characterized above all by the fact that feedback loops are generated. Increasing attention is paid to communication, so that a transfer of information between developers, users and clients is made possible. If communication is focused on developers and users, it can also be assumed that the requirements profile best corresponds to what real users expect from software - an important prerequisite for the success of software.
While wireframes or website mockups focus on visual elements, prototyping focuses on interaction and usability testing. The software should be tested for usability. This works best when users are involved in the development process. In this way, errors are detected early and possible changes can be integrated without additional effort. Furthermore, such changes in software hide cost factors whose effects can be reduced with prototyping.
If users are involved, this means that developers also receive reliable data about the product and market potential. For example, to find out whether there is a need for the product at all. Especially with start-ups and still young business models, prototypes can facilitate decision making: Only if there is (or can be created) a need, it makes sense to think about a market launch.