Software Prototyping: What Is It, and Is It Right for You?
September 04, 2019 / Bryan ReynoldsSoftware prototyping is one of the many services that Baytech Consulting offers. For many firms it’s the undisputed best choice for software development, especially when working with a vendor like us for that development.
But we realize that some of our readers aren’t familiar with the term. What exactly is it? And is it something that can benefit your business? We’re about to dive into answering these two questions.
Software Prototyping: A Quick Analogy and Definition
It’s easiest to define what software prototyping is by thinking about prototyping in general. We all pretty much have a handle on what it means to create a prototype in the real world. You have a great idea for a new gadget, and you build (or hire someone to build) a custom-made, one-off version of the gadget. It may or may not work, of course. If it doesn’t, you start tinkering or you start over.
If it does work, you show it off to someone. That person evaluates it, looking for flaws where the item can be improved. The ultimate goal is to get approval to get the thing made in real life and at scale so that it can help people and make you tons of money.
Software prototyping is, at a high level, the exact same concept applied to software. You have an idea for a new piece of software. Your idea may be highly conceptual and may not be completely fleshed out, but that’s OK. You need to know if your idea is workable. So you hire a company like us to build a prototype of your software. This prototype is used for testing and evaluation, with the goal of ironing out any problems or missing functionality before the “real” software is built.
What Software Prototyping Isn’t
If you’re new to the software industry, this all may sound fairly obvious. And that’s because to a certain degree, it is. Prototyping has worked so well in so many other fields that its appearance in software development was inevitable. Still, it’s important to remind ourselves what the industry used to look like.
The typical development method before prototyping was one where an entire piece of software was built out in its entirety before the customer had a chance to review it. It was delivered as a finished product, and after-the-fact changes were prohibitively expensive. This model is sometimes termed the “slaying the dragon” model for software development.
It’s hard to see much of a use for this model these days. But since it can avoid some of the disadvantages to prototyping (we’ll get to these), we do still see it used occasionally.
Taking a Deeper Look at Software Prototyping
There are several ways to look at how software prototyping looks in a workflow. The simplest is a three-step cycle. The first step is for the customer (that’s you) to create a vision for what the software needs to do. That vision is used to develop a software prototype (step 2). Then the customer tests the software prototype (step 3), which will of course result in feedback for the software development team.
That feedback is the new step 1, which is used to refine the software prototype (step 2), which is again tested by the customer (step 3). This iteration continues until the customer and software developer agree that the prototype is sufficiently developed. At this point the final software product can be developed.
Types of Software Prototyping
Software prototyping can take on one of several distinct flavors. We’ll look at the two most common: throwaway prototyping and evolutionary prototyping.
Throwaway Prototyping
Throwaway prototyping works a lot like the name suggests. In this method, the software prototype serves no function beyond proving a concept or demonstrating some aspect of the software. It has the basic functionality needed for testing, but it likely doesn’t function in any sort of complete sense.
The code developed in throwaway prototyping is not reused in its entirety in the finished product. Also called rapid prototyping, this method of prototyping yields speedy, if incomplete, results. Customers quickly get a feel for what their vision could look like in the real world, and the vendor gathers quick feedback on whether they have understood the customer’s vision.
Throwaway prototyping will usually include a graphical user interface (even if the code behind it is not functional or nonexistent). This way, customers can sign off on whether the prototype is what they are expecting to see when using the software.
We recommend starting with throwaway or rapid prototyping when the customer is not settled on exactly what’s needed in the software. It’s easy to make changes at this stage.
Evolutionary Prototyping
Where throwaway prototyping creates attractive but mostly nonfunctional software, evolutionary prototyping creates functional but often limited software. That was a mouthful, so let’s unpack it.
The goal with evolutionary prototyping is to evolve your prototype into the finished product. This will happen iteratively most of the time. In first round of prototyping, customers receive a functional software prototype. It may be barebones in its look, and it’s likely missing a lot of functionality, but the core software is functional.
Evolutionary prototypes are robust. As customers review a prototype of this kind, they sign off on what’s working and request needed additional features. With a working prototype, customers may also discover needs they didn’t know they had. These features can be added into the next evolution.
One significant advantage of evolutionary prototypes is that they do indeed function. In many cases, the extant parts can be used by organizations while they wait for additional capabilities to be built out.
Pros and Cons of Prototyping
We think software prototyping is great, but it’s not a perfect system. To help get at whether prototyping is right for your business, let’s look at a few pros and cons.
Pros
Especially effective when customer needs aren’t fully known at the outset
Can save time and money by catching mistakes or missing functionality early in the design process
Increases customer “ownership” by requiring their input and approval throughout the process
Increases customer satisfaction by engaging the customer early in the process; customer is a part of the solution
Cons
Can lead to a never-ending development cycle if customers are indecisive or have internal disagreements that lead to changing requirements
Customers may request features that aren’t practical or even possible to build
Seeing rough or unfinished software can confuse or alarm customers unfamiliar with prototyping
A modular, evolutionary prototype process can lead to software that’s more disjointed than if it had been developed all at once
Is Software Prototyping Right for You?
Now that you understand what software prototyping is, here’s the big question. Is it right for you?
We’ve already mentioned that if you’re looking to develop software, but your parameters aren’t all known yet, then prototyping is a good choice. Also, if you’re building a software system with high levels of user interaction, prototyping is a must. You want to find those pesky spots where users get stuck now, not after launch.
Software prototyping is also ideal when you need to check or show that a new idea is technically feasible. The workability of the prototype can inform your team on whether to proceed.
Of course, most businesses don’t have all the needed capabilities in house to prototype successfully. If that’s true of your organization, partner with Baytech Consulting for your next prototyping need.