Software prototyping
Why it is essential to develop a solid and consistent service
By Niccolò Maria Menozzi
Before developing any application, whether web or mobile, it is always a good idea to dedicate enough time to the prototyping phase. With this in mind, we should ask ourselves what software prototyping is for and how it is structured as well as why it is important. Let’s discover it in 4 points.
1. Prototyping is not just some interface, it’s a process
Creating a software prototype, contrary to what some less informed individuals may believe, is not just assembling a series of interfaces to evaluate how it will look once the production is finished. Indeed, it is a lot more: prototyping – or design, if we want to use a more general term – is the process which defines which dynamics the software will function with and which steps will guarantee useability and usefulness for users. It is a crucial aspect to obtain good results.
The creation of proper software – written in code and functioning to be clear – is essential, but it is the application of previous choices. The real heart of the project workflow is the preliminary prototyping phase: that is the situation in which all the most important decisions that will influence the work of the developers are made.
Software development is usually preceded by the following three main phases:
- Requirements analysis: the project team takes in all the specifications and requirements the software will have to meet once it is operational.
- Structural Sketch: The UI designer often sketches the basic framework on paper which defines the layout and the function of the interface elements.
- Mockup: The UI designer transforms the sketches into a series of graphic interfaces which anticipate, quite accurately, what the software will look like to the user.
During this process, the client can evaluate the choices along with the designers and gain a greater awareness of the specifics and criteria adopted to make it an effective tool to offer to the final users.
«The prototypes are useless, but prototyping is essential»
Ben Nadel, cofounder of InVisionApp Inc.
In his article, Ben Nadel emphasises the imperfect nature of prototypes which are subject to progressive evolution that is intrinsic in the process.
According to Nadel We arrive at that best guess through experimentation, introspection, and - most importantly - deep thinking about the product and the user requirements.
In short, the prototyping process is more important than every single step that constitutes it and guides those involved along a fine tuning of the software in which the sketches and mockups, more than a goal, are a practical means in evolution, useful for developing winning solutions.
In this sense, clients should welcome prototyping as a moment of software enhancement that will lead to great benefits, rather than considering it with skepticism, as sometimes happens, believing it to be a waste of time.
2. prototypes save time
One of the great advantages of the graphic mockups is that they can be modified relatively easily. Of course not all of the client’s requests can be applied quickly: it depends on the extension of the intervention.
On the other hand, working directly on the code can take a lot longer, causing the client to have to wait more to see the updated interface.
In recent years, with software such as Sketch or Adobe XD (among others), web prototyping has made great progress, overtaking such outdated design tools as Adobe Photoshop or Dreamweaver.
In particular, the possibility to create large customisable component libraries allows you to easily assemble a test graphic interface, while services such as Zeplin or InVision make it easier to share materials with the client.
What’s more, with the developers’ supervision, you can quickly identify the solutions that may be difficult to implement, starting with the needs analysis phase. Solving these problems before starting production means saving time and money.
3. Prototypes act as maps for the developers
When a project enters into the development phase, that is when it is handed over to the developers to be transformed into actual code, some reference documentation is needed.
This documentation is made up of the mockups and the design that defines the animated interface components.
Developing software without a prototyping phase is like working on a building without the architect’s plans: the cranes arrive, the diggers come out, the bricks, the cement, even the electrician and the plumber; nothing is missing, but what do we do now fellas? Where do we start from? What sort of building do we have to create?
That’s right: it can’t be done. You always need an outline to move to the production phase in a rational and ordered fashion, which means planning out, piece by piece, every part of the software and the interconnecting relations.
The developer must be able to access a wide range of information: the graphic color codes, the font styles, the icon libraries, the element size in pixels, the distances and the paddings that separate them, the changes there are between desktop and mobile interfaces, etc.
After all, is there a more rapid, effective and economic alternative to this process, complicated as it may be?
Could we sit next to the developer at their desk, turn on the computer and show them, step by step, in real time, how we want the interfaces and how to create them?
Or perhaps we could jot down on paper how the software should behave and hand it to the developer, hoping that what we have written is sufficient and clear?
Clearly this cannot work: they are all highly ineffective methods that leave too much space to inaccuracy and uncertainty.
The information the developer needs to create the software must always get to them, one way or the other. This passage of information takes time and there’s no getting around it.The only thing you can do to avoid delays or undesired consequences is to follow a clearly ordered and tested procedure, setting out everything that is needed for production.
4. After all, prototyping is a fluid process
What we have said shouldn’t lead you to perceive prototyping as a linear process that is clearly divided, in which every step, once concluded, remains impervious to change all the way to the production phase.
The project team always tries to respect the workflow set out at the start, to work in a standard way – therefore more effectively – but as much as this may speed up the work, the context the team operates in is never exactly the same.
The software is open to many changes and reconsiderations, which may arrive in random order, until it reaches the production phase. Sometimes the project designers backtrack and review requirements analysis, sketches and mockups and generate a framework of more fluid operations with a non linear progression.
After all, this is a part of the challenge of every new project and can be seen as one of the reasons that lead Nadel to talk of imperfect prototypes.
The client’s organisational needs, the limits they set (in terms of budget, time etc.) and the complexity of the project may force the team to adopt more flexible measures which inevitably end up modifying the project workflow. This may depend for example on unforeseen factors such as the client changing their mind or a difficult implementation choice with the code which comes out only after it has been approved.
In conclusion, for every individual involved in a digital project it is essential to understand that the basis for good software is set out during the prototyping phase, despite the fact that it may be complicated.
Furthermore, planning is essential to obtain a solid service and to guarantee good performance, but everything else comes long before. If you would like to know more about prototyping, or if you want a consult, contact us, that’s what we at Dreamonkey are here for.