You may have come across the term software prototype. In this post we take a look at what a software prototype is and why and when they should be used. So, first let’s define the term. Concisely, a software prototype is an incomplete, but functional developed system. It can be thrown away or evolved until the system is completely developed. Software prototyping is a useful strategy with a number of advantages both for paying clients and software development service providers alike and we’ll see that further on.
Is this the same thing as a proof of concept?
Before delving into the details, it may be required to clear up any confusion with a similar sounding term, proof of concept. Although the two terms prototype and proof of concept seem similar they actually serve different purposes and focus on two different areas relating to software development.
A proof of concept aims to see if an idea is feasible and to ensure that certain functionality is possible through development. In contrast, a software prototype is concerned more with the usability of the system as seen by users and not on the technology or underlying system architecture.
With this in mind, it is worth focussing next on when prototyping is a worthwhile exercise, before looking at the benefits of doing so.
Software prototyping is a strategy that can be used for all kinds of software development, but it is best suited when the system users perform tasks through a user interface. Prototypes should be considered when developing web applications and mobile applications as these have a high level of user interaction.
So, what are the benefits?
Software prototyping avoids the financial and effort risks associated with all upfront development. Prototyping increases the level of communication between developers and users, and can ensure developers get early feedback that the system matches the client’s specification. Also, through prototyping, the development time for the remaining parts of the project can be more accurately estimated.
That is all good and well, but didn’t I read about throwing it away?
At first sight, it may seem wasteful to develop software and then throw it away, but there are cases where this makes sense and can save money. A prototype can be developed to test the feasibility of a product and depending on its measure of success, may be taken forward or mothballed. It is much cheaper and faster to do this for a subset of functionality rather than developing an entire system and trialling it at greater expense and effort.
In this way, software prototyping allows incubated ideas to be realised, and if they are not successful allows them to fail-fast; a strategy easier to implement using cloud technology, such as Microsoft Azure. Once a development milestone has been reached, the software can be reviewed and subsequent action planned.
In cases where the goal is to complete the software, the prototype can be evolved to full functionality maintaining a good level of communication between the development team and the client.
So, to wrap up. Software prototyping helps to
- de-risk development,
- avoid big up-front investment
- encourage greater communication during development.
The process can be used to “fail-fast” and to pragmatically test out innovative ideas. From discussions based on a prototype, these ideas can take the system in new directions and as a consequence the final software may end up being completely different to the initial prototype.
Innovensa provide custom software development in the UK. We are a passionate and experienced software development team with experts ready to help you.
Get in touch about your next software development project or idea for a no obligation chat.