We take software prototyping seriously. Prototyping—in particular, rapid prototyping—is the best way to make sure we, as AndPlus developers, understand what our customers expect the software to do and how it will perform in supporting their business processes.
Prototyping in software development is the process of building a simulated user interface for purposes of ideation, evaluation, and user feedback. Modern software prototypes are interactive. They mimic as closely as possible the actual behavior of the software.
A prototype enables our developers and designers to show our understanding of the customer’s requirements. If our interpretation of the requirements is off by just a little, the customer can see the discrepancy and let us know right away. Doing this early in the development process saves time, money, and aggravation. It’s much easier to make changes early in the development cycle.
The four common types of prototyping used in the software industry today are:
- Rapid (Throwaway) prototyping
- Evolutionary prototyping
- Incremental prototyping
- Extreme prototyping
1. Rapid (Throwaway) Prototyping
Rapid prototyping is the most commonly used AndPlus. Its name refers to the ease and speed with which a prototype can be modified to try different ideas with the user audience and incorporate their feedback.
Rapid prototyping is also known as “throwaway prototyping” because the prototype is expected to be relevant only in the short term, such as one sprint in the Agile development framework. It may go through several cycles of feedback, modification, and evaluation during that time. When all the stakeholders are satisfied, it becomes a reference for the designers and developers to use. After the sprint is completed, the prototype is discarded and a new one is built for the next sprint.
Throwaway prototyping can be applied to less-than-rapid prototypes as well. Paper prototypes, in which the designs are simulated on pieces of paper or cardboard, are by definition “throwaway.” Computer files, whether static images or interactive prototypes, will end up on someone’s hard drive for eternities even though they are almost never needed after the development cycle.
2. Evolutionary Prototyping
An evolutionary prototype differs from the traditional notion of a software prototype; an evolutionary prototype is a functional piece of software, not just a simulation. Evolutionary prototyping starts with a product that meets only the system requirements that are understood. It won’t do everything the customer requires, but it makes a good starting point. New features and functions can be added as those requirements become clear to the stakeholders. That’s the “evolutionary” nature of this prototype.
In a way, the first iteration of an evolutionary prototype is similar to the minimum viable product (MVP), or software that has the absolute minimum functionality to make it useful. The distinction lies in how the requirements for that first version are selected.
3. Incremental Prototyping
Incremental prototyping is useful for enterprise software that has many modules and components which may be loosely related to one another. In incremental prototyping, separate small prototypes are built in parallel. The individual prototypes are evaluated and refined separately, and then merged into a comprehensive whole, which can then be evaluated for consistency in look, feel, behavior, and terminology.
The risk with incremental programming is the look and feel can vary so much among the prototypes, the modules feel like completely different pieces of software. The design team must come up with some guiding principles in advance and keep the designers on a short leash to ensure consistency.
4. Extreme Prototyping
Extreme prototyping is more common for web application development. Web applications are composed of:
- Presentation layer
- Displayed in the user’s browser
- Services layer
- Communications services
- Business logic
- Authentication and authorization
- Other back-end services
Extreme prototyping is conducted in three phases:
- Build HTML wireframes to simulate the presentation layer. These web pages have limited interactivity. They are complete enough to show users the various user journeys through the application.
- Transform the wireframes to fully functional HTML pages, tying them to a simulated services layer.
- Code and implement the services layer.
With this approach, the user interface is designed and developed before any of the underlying technology is implemented, which is what gives it the “extreme” tag. The services developers then make the whole thing work.
Prototyping the AndPlus Way
Each type of prototyping has advantages and disadvantages, and each is useful in different circumstances. AndPlus projects usually involve rapid prototyping because it fits in so well with our Agile framework, which we have developed and refined over time to provide maximum value to our clients. Rapid prototyping dovetails with the limited scope and time-bound nature of Agile development, and it keeps the customer involved in the decision-making process in small, manageable chunks of time.
If you have an idea for a new app or modifications to an existing app, we would like to show you how rapid prototyping can bring your concepts to creation. Contact us today to get the conversation started.