Rapid Prototyping is an approach to software development that emphasizes quick, iterative development cycles and minimal feature sets. The goal in rapid prototyping is not to develop a product. The goal is to, as quickly as possible, build something that utilizes a technology or platform to the point that you can understand the strengths and weaknesses of that technology or platform.
Rapid Prototyping in software development is also known as Rapid-application development (RAD), which is an adaptive software development approach. Often driven by user interface requirements, Rapid Prototyping puts less emphasis on planning and more on the adaptive process.
Related: Define I
Common Software Development Models used for Rapid Prototyping
Rapid prototyping can use different models for software development. The most common models are:
- Adaptive Software Development
- Unified Process
Adaptive Software Development ASD
ASD is a software development process based on rapid prototyping that is continuously adapting through human collaboration and self-organization. ASD is:
- Mission focused
- Risk Driven
- Change tolerant
ASD utilizes a repeating cycle of speculation, collaboration, and learning.
In the speculation cycle, ASD creates a project plan. To formulate a cohesive project plan, ASD uses the project’s initial information and essential requirements to define release cycles required for the project.
Then in collaboration, ASD requires the development team to work together to identify, delegate, and communicate problems facing the project. Collaboration balances predictable parts of the environment and adapts various technologies, requirements, stakeholders, and software vendors.
During the learning cycle, ASD utilizes rapid prototyping iterations of design, build, and test to gather knowledge through mistakes made on false assumptions. Testing can be done in focus groups, technical reviews, and project evaluation.
The Spiral software development process is risk-driven. Leveraging unique risk patterns of a project, Spiral uses incremental, waterfall, and evolutionary prototyping. Spiral has development iterations in smaller increments of time to allow developers to learn quickly from mistakes and identify other risks. Spiral uses waterfall methods of linear sequential phases while utilizing evolutionary prototyping to refine and rebuild the software.
Six characteristics of the Spiral model include:
- Defining key artifacts concurrently
- Every Spiral cycle:
- Minimizing overall risk determines the level of effort for analysis, design, prototyping, and testing.
- Reducing overall risk how much detail the team will decide for any project artifact.
- Uses three anchor point milestones of life cycle objectives, architecture, and the initial operational capability.
- Focuses on the overall system and its long-term concerns during its life cycle.
The Unified software development process uses an iterative, incremental, architecture-centric, and use-case driven framework for development.
Iterative and Incremental
The Unified Process treats each iteration like a mini-project. By the end of each cycle, developers create small working prototypes of the software. And with each iteration, more functionality is added to accommodate customer specifications.
The Unified Process is architecture-centric and supports multiple architectural models. The Unified Process creates a blueprint of how the software system is organized, highlighting different technologies, program languages, operating systems, development environments, and server capabilities.
The Unified Process leverages interactions between two or more entities. The more preferred method on how the software interacts between a customer and the system. Each use case represents key functionality for each iteration.
The four phases of the Unified Process are:
The Elaboration, Construction, and Transition phases are broken into timeboxed iterations for rapid prototyping. During the Elaboration phase, an executable architecture baseline is created. The Unified Process is also risk-focused by identifying and solving the most critical risks early on.
Agile is a framework for development that enables you to build complex products while continuously considering new information and user feedback. According to The Manifesto for Agile Software Development, Agile values:
- Individuals and iterations
- Working software
- Customer collaboration
- Responding to change
Where the Unified Process and Adaptive process are more ridged in their workflow, Agile plans and completes iterations in short cycles (called “sprints”). During each sprint cycle, teams are empowered to prioritize better and then focus on the top, short-term priorities, while still planning against long-term business requirements.
A typical Agile workflow is broken into two-week sprints, at the end of which a new version of the product is released. Sprints are made up of user stories that sit in the backlog until they are prioritized and assigned to an upcoming sprint. The backlog is like a bin of future possibilities— continually being refined, groomed, prioritized, and expanded.
The sprint is your to-do list for the next two weeks. The goal of a sprint will be to finish all of the stories in that sprint and push a new release with new functionality.
How Does Agile Work with Rapid Prototyping in Software Development?
Rapid Prototyping is a tool that can be used in conjunction with Agile. The goal of rapid prototyping is to understand a technology or platform. Let’s say you are building an app that can scan receipts and extract data from those receipts.
You know you want to use a third-party Optical Character Recognition (OCR) technology to scan the receipts. The alternative—developing the computer vision algorithms on your own—could take years after all. But which OCR platform is the best for your specific use case?
You could spend hours studying the websites of Clarifai, Google Firebase ML kit, or Amazon AWS Machine Learning, only to realize you still don’t know how these technologies work, in practice, and within your existing systems.
What’s worse, if you select the wrong platform, you may not realize it until you are months into the work. The longer you develop on a software platform, the more embedded that platform becomes to your product, and the harder it is to switch.
To further complicate things, technologies change so rapidly that what might be the most robust platform for your use case this year can change by next year. We regularly compete in hackathons and often find that the AI platform we loved last year has been surpassed by a newer, shinier platform.
Want to learn more about Agile Rapid Prototyping in software development? Hit us up at email@example.com or text us at 918-373-9364.
Where Rapid Prototyping Creates the Most Value in Software Development
This is where Rapid Prototyping is most valuable. Rather than picking one platform to heavily invest in, perhaps for years to come, Rapid Prototyping allows you to integrate a proof of concept on each platform to see exactly how they perform in different scenarios. You may spend a sprint or two upfront doing that work, but you may save months switching platforms down the road.
Can I use rapid prototyping for product development?
We’re glad you asked...yes! Rapid Prototyping is the best way to develop digital products for your business.
West Elm Case Study: Successful Rapid Prototyping Using the Agile Model
Let me give you a concrete example from our time working with the Innovation team at West Elm.
West Elm, like many retailers, was looking for ways to leverage the newest technology to increase digital sales. The problem, of course, was how to choose from the many options on the whiteboard:
- Build a Facebook chatbot to reduce customer service requests.
- Build a virtual reality showroom so customers could explore their latest offerings from the comfort of their homes.
- Build an Augmented Reality app that allowed customers to pull out their phone cameras and ‘place’ a couch right in their living room.
- Build a style matcher that takes a Pinterest board and, using AI, matches the style of that board to their inventory of furniture.
- Build web-based ad units that show a throw pillow that, with a tap, you could ‘toss’ onto your couch.
- Build a hybrid mobile website/application that could be loaded from the browser, but also downloaded, offering the advantages of both web and mobile.
- Build a 3D texture tool that let customers examine, in virtual detail, the fabrics used in their furniture.
The product developer of the past would look at that list and prioritize, one at a time, based on likeliness to succeed. The West Elm team instead opted to apply Rapid Prototyping and build ALL of them, often in parallel.
Working in Agile Sprints
During each sprint cycle:
- We broke up each feature into its most basic user flow.
- We selected the top 2 or 3 platforms for each feature and developed proofs of concept (“POC”) for each one.
- Then, West Elm tested those POCs out on small focus groups, learning all sorts of insights.
Leading to Powerful Insights
By leveraging the Agile model that focuses on customer feedback during the development process, we learned:
The Facebook Chatbot Prototype
The Facebook Chatbot caused more customer frustration than it alleviated, so they halted the development of the prototype while the team pursued other avenues.
The Style Matcher Prototype
The Style Matcher didn’t do much to boost sales, but it landed them in the pages of Fast Company magazine, which was a big win for a team looking to gain recognition for their digital acumen. But didn’t move the needle when it came to increasing digital sales.
The Progressive Web Apps Prototype
But the Progressive Web Apps, which combined elements of a website with a mobile application, had an immediate and drastic improvement both on time spent on site per user and revenue per user.
To this day, it is the experience you most likely will get if you go to westelm.com on your mobile phone (I say most likely because, like any good product team, they are continually testing and tweaking different versions of their web experiences to optimize conversion funnels).
The Proof is in the Rapid Prototyping
This proof of concept of how to increase sales during the software development process saved time, money, and resources. Imagine if we had focused development and launched the Facebook Chatbot before testing it on focus groups. It would’ve been a colossal waste of developer time, and West Elm wouldn’t receive a solid return on investment for a failed digital application.
When building your next product or application, you should consider leveraging Rapid Prototyping for software development. SF AppWorks uses Agile Rapid Prototyping to assess continually the strengths and weaknesses of the software project—ensuring that your next product will satisfy and exceed customer expectations. Success is hard to achieve in digital products, but when it happens, it can be transformative to a business.
The best way to achieve success is to know you will fail more often than not, so to give yourself enough chances that the odds tilt in your favor. Rapid Prototyping embodies that approach.
Want help Rapid Prototyping your next project? SF AppWorks specializes in Agile Rapid Prototyping in software development. Contact us to learn more about the process and set up a free consultation.
Watch this stop motion lego dramatization of a company that invests months, heck years into the development process without employing Rapid Prototyping to first research and determine the strengths and weaknesses of different platforms.