Prototyping in software development
- Software development
Prototyping in software development is a trend; find out why.
If you follow our blog, you have probably already read about Design Thinking and its benefits. Well, prototyping, one of the phases of Design Thinking, is widely used for software development, and we will explain why in this article.
What is prototyping for software development?
Prototyping in software development is a process that evaluates the generated ideas and validates – or not – all the established requirements.
At this point, we will take ideas off paper and start understanding them in physical form.
According to the book Design Thinking – Business Innovation¹, “the prototype is the tangibility of an idea, the passage from the abstract to the physical to represent reality – even if simplified – and provide validations.”
What is the importance of prototyping in software development?
As you can already see, the prototyping phase is necessary for a project to be 100% effective and developed without errors.
Prototyping is essential to verify if the designed solution is adequate to the client’s challenge, guaranteeing the alignment of the information.
This way, we can minimize risks, allowing the customer to validate and perform all tests before deployment. It is essential to emphasize that prototyping should continuously evolve. As failures and adjustments are verified, we reach more robust software solutions.
Although several requirements are already defined before the software development, it is during the user’s interaction with the system that the new details are noticed.
Typically, these prototypes are performed with customer collaboration and at different levels of loyalty and in different ways, which we will explain in the following topics.
Benefits of prototyping in software development
Improve communication between developers and the end-user;
Quickly identify requirements that have not been applied;
Analyze the user experience in the software;
Reduce refactorings in project development.
Fidelity levels and prototyping models
“A prototype can range from a conceptual or analogous representation of the solution (low fidelity), through aspects of the idea, to the construction of something as close as possible to the final solution (high fidelity),” as we can see in the book’s explanation. (qual livro?)
The fidelity in prototyping can be:
Low – With only a conceptual representation and, consequently, developing faster. These low-fidelity prototypes are also known as sketches, wireframes, or sketches.
They are representations drawn by hand and on paper, representing only how the system’s usability will be.
Average – takes more time in production, showing more detailed aspects of the idea.
The functional prototype, for example, is a simulation that can represent the user relating to the tool. Thus, it is possible to test interactions and improve the customer experience.
High – it is very close to the software’s final result, which takes longer to produce but with a more efficient outcome.
The mock-up simulates what the software will be, and users can validate all functionality in real-time with a visual representation.
Development, at this stage, is usually carried out with graphic design programs, front-end coding tools, and front-end programming languages.
The first secret of great design
In this funny and lighthearted conversation, Tony Fadell, the man behind the iPod and the Nest thermostat, shares some of his tips for noticing – and driving – change.
Evolutionary Prototyping or Disposable Prototyping
There are two forms of prototyping in software development.
The evolutionary or incremental prototyping is elaborated at the first moment of the project, and, as development progresses, this prototype is redone, adapted, and aligned with the elaboration phases.
The second, disposable prototyping, is also carried out in several stages but is not increased in the following steps. Thus, the prototypes address the details of each moment of the project and then are discarded.