What is prototyping and is it always worth the effort?
Most people who want to put their first startup idea into action make that mistake.
I was guilty of the same crime. I thought that the next step after validating the idea and making the decision to implement it is to find someone who will technically do it.
Such thinking had one major flaw.
Before you begin the costly execution phase of your software project you should prepare a prototype. You may find a software house that will be able to help you with this as part of your collaboration (in Astra.Software we offer such service to our customers, both as a separate service or component of the entire software development process).
If you are having issues expressing or visualizing your idea in a complex and professional manner, try drawing on the printed browser templates that you can print from Interface Sketch or using UXPin. Although this will not be done professionally, it’ll go a long way towards explaining what and why you are doing and how it’s going to look like.
Why make a prototype and whether it is always worthwhile – you will find out from this article.
What is prototyping?
Let’s start with establishing the right foundation to make sure everything is clear to you.
In the classic sense The word prototype comes from the Latin words proto, meaning original, and typus, meaning form or model.
In contrast, software prototyping is defined by TechTarget as follows: “In software development, a prototype is a rudimentary working model of a product or information system, usually built for demonstration purposes or as part of the development process.”
The practical purpose of prototyping software is to optimize the development process. The work of programmers and testers is expensive, so it’s a shame to waste time and money on unnecessary development. In addition, prototyping serves to provide greater clarity in the presentation of these functionalities, which are essential from the outset.
Prototyping is an important part of Agile development process. In the general model (there are several types of prototypes, but we will go into details of that in another article) Understand -> Explore -> Prototype -> Evaluate. It follows immediately the requirements elicitation phase.
Why create prototypes?
While defining prototype software I inadvertently mentioned several advantages:
- optimization of the software development process
- increase in clarity throughout the project
- perfectly fit in the Agile methodology
The above list does not exhaust the long list of advantages of creating prototypes in the software development lifecycle. It is also important to be aware of several other aspects.
Ability to conduct early research on end-users or focus groups
Long before writing the first line of code we can already start testing user experience in many respects: design, marketing, UX, business issues, and more. According to the Webusability blog, a change in code can be 100 times more expensive than a prototype change. This way you can validate your assumptions in the real world.
Prioritization of actions
Prototyping and then testing does not necessarily destroy your assumptions. Perhaps all are correct. However, some functionality is more important than other in the very beginning. Creating a prototype can help identify and then properly organize and sequence the development process in the planning phase.
Get feedback on the understanding of concepts among future users
Not only in the initial stage, but also in subsequent phases of software development, prototypes can be used to check understanding of the concept by the end-users or focus groups. This will also help better define your success criteria. Theoretical assumptions about human behavior often differ from the real behavior.
Possibility of using prototypes in development process
Creating prototypes, for example in the form of visualization, also has a positive impact on the technical implementation process. It is easier for a developer to focus on creating the appropriate code when it has a visual representation of the elements and their colors. As they say, picture can be worth a thousand words.
What are the disadvantages of prototyping?
Prototyping is by no means a silver bullet for creating software that is free from any defects. Of course, there are shortcomings that we must be aware of when working with prototypes.
Prototype is not a working product
Prototype is a tangible effect of project progress. For the customer it is a project milestone when they can see how everything is going to look like. On the one hand it is a positive and exciting moment, but on the other hand, it can rise the bar significantly for the development team and create the expectation that the final product will be ready any day now.
Unfortunately the technical creation of the product is the most time consuming element of the whole project. Prototyping is only a preliminary phase. Therefore, the induction of such expectations sometimes causes tension. It is best to manage those expectations right from the get go and keep the customer informed and educated about the project phases, schedule and the roadmap.
Excessive focus on the prototype
Probability of the prototype also raises the danger in the software team. The temptation to create a good prototype to satisfy your customer as quickly as possible can make you invest too much time and energy in this early phase of the project. It may also lead to the loss of a larger picture of the product.
One must remember the main purpose of our client, the team, and create real solutions to real problems.
Creating unreal prototypes
Due to the ease of creating prototypes you can lose a realistic look at the technical limitations that might limit your project. It is very easy to design a feature when it is only limited by drawing skills. Later, it may turn out to be hard and expensive to implement.
Where does prototyping work best?
The above mentioned defects are a threat to the project overall success, but with the right approach you can minimize the risk, turn the table and use it to magnify your projects success. Therefore, it would seem that prototyping is just as appropriate in every case.
In reality, each software project is different. Of course, it is always worth testing out assumptions and strive for greater clarity between the Product Owner and the Development Team,, however, prototyping works best in a progressive elaboration model, which is a project management technique.
Projects based on progressive elaboration are continually modified and improved, and their management is based on accurate data obtained in a short period of time. At the same time with continuous learning organization and implementation of this knowledge in force.
Ideally it fits into a model based on interventions, which in turn can prototype and thus test assumptions, and support the learning process.
Prototyping is an important element of software project lifecycle. Combined with other efficient project management tools, techniques and methodologies, such as Agile, and a competent team, this is the best way to create amazing software.
Therefore, at Astra.Software we synergistically combine the best elements of effective software product development. We offer prototyping as a separate service or component of an entire package that will change your idea into working software. If you are interested in working with us feel free to get in touch with us.
In the next blog post we will look at the types of prototypes and the technical aspects of their creation. We encourage you to read and share your experience with us 🙂