YouX subscription
Software Prototyping

The importance of software prototyping

Luís Filipe

Luís Filipe

Managing Partner YouX

What is software prototyping

In a generic way, we can define software prototyping as the process that allows the creation of a visual model of the product or system whose development is intended to be carried out. 

Revisiting the history of software development helps us understand the use of prototyping. In the 60s of the last century, a development model was created that has remained popular to this day, the SLDC – Software Development Life Cycle.

The SDLC presented as a great advantage the segmentation of software production into different individual phases, which would work in a systemic way, with their inputs, processing and results that would pass to the next phase, after being verified and validated.

Life Cycle Model Software
The Classic Software Life Cycle.

Source: The Role of Prototyping in Software Development G. Pomberger, R. Weinreich C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz

Its use has revealed its limitations: it started from the wrong assumption that the development process is linear and that the interactions between the phases are exceptions.

This approach meant that the tangible components of the system were only available very late. On the other hand, any changes that became necessary, for example, required by the client, became difficult to meet without expending enormous resources.

It is in this context that the Prototyping-Oriented Software Live Cycle appears in our 80s. This model does not introduce a rupture with the previous one, but complements it, making it more iterative. Prototyping takes on a central role.

Prototyping Oriented Software Life Cycle
The Prototyping-Oriented Software Life Cycle.

Source: The Role of Prototyping in Software Development G. Pomberger, R. Weinreich C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz

As Connell and Shafer state, “ A software prototype is a dynamic visual model providing a communication tool for customer and developer that is far more effective than either narrative prose or static visual models for portraying functionality.  It has been described as:

  • functional after a minimal amount of effort 
  • a means for providing users of a proposed application with a physical representation of key parts of the system before system implementation.
  • flexible require minimal modifications effort 
  • not necessarily representative of a complete system.”

(Connell JL, Shafer LB.: Structured Rapid Prototyping. Prentice Hall International, Yourdon Press, 1989)

The role of prototyping in software development is particularly important in cases where the client does not have well-defined project requirements, protyping allows creating a first prototype of the final product, testing it and improving it until its approval. From that moment on, the prototype developed becomes the basis of development for the final product.

“As some developers like to say, “If a picture is worth a thousand words, then a prototype is worth a thousand meetings.” "

John Doe

in, What is Prototyping in Software Development (and Why It's Important)

Advantages of software prototyping

  • Test and validate earlier: have a representation of the product without any code. Iterating with the prototype allows you to quickly and efficiently arrive at the best possible design.
  • Lets Impress investors and early adopters: a prototype clearly demonstrates an idea.
  • Easy, fast and cheap: Prototypes are easy to develop, allowing you to explore different ideas without spending a lot of time or effort. When we move to code, we do it with confidence.
  • It also allows you to get feedback from the beginning of the development process which allows you to identify system problems before the coding phase begins.
  • Major usability problems can be identified even before the code, allowing them to be fixed at a very low cost.
  • Additionally, prototyping also stimulates creativity.
  • Interaction Foundation Design says :
The 1-10-100 rule how prototyping cuts costs
The InteractionDesign Foundation

Types of prototyping

There are several types of prototypes in software development and various nomenclatures as well. Looking to structure a little, we can say that they differ according to two major axes: the scope (how much they represent of the final system) and their degree of realism:

scope

  • Vertical prototypes: only some features are included but they are functional and can be tested under very realistic conditions, including real data binding) with the execution of real tasks.
  • Horizontal prototypes: they are not as functional as the first ones but include the entire system and therefore allow you to see how the different functionalities are articulated in the system.
  • Scenarios: it has a reduced scope and functionality, it allows you to test the system by going through a certain script.

Realism

  • Low fidelity: little functionality and interaction, they are usually used to show the concept, layouts or design alternatives.
  • High fidelity: They are designed to demonstrate the interaction with the system, having a high degree of realism.

Prototyping Models

4 Types of Prototyping Models

  1. Rapid prototype: used to explore ideas and get feedback from the customer, rather than compromising the customer, the aim is to avoid necessary developments.
  2. Evolutionary prototype: consists of a refinement of the initial prototype, which is improved and developed until it is finally accepted by the customer.
  3. Incremental prototype: the final product is divided into several parts and prototyped individually. In the end they are put together neatly. This process reduces complexity.
  4. Extreme prototypes: it is mainly used in web development and consists of 3 sequential phases:
    1. a prototype is presented with all static pages in html
    2. functional screens are made to simulate the process
    3. All services are implemented and associated in the final gantry.

Are you thinking of developing new interfaces or products or looking to improve existing solutions? Proceed safely. See our services .

You cannot copy content from this page