Andrew Greenstein Aug 3, 2020 6:44:00 AM 25 min read

What is Rapid Prototyping | SF AppWorks

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.

 

Man sitting at his desk with 2 monitors and a laptop, in a beautiful office, with retro paintings on the wall, as a concept of rapid prototyping

 

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
  • Spiral
  • Unified Process
  • Agile

 

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
  • Feature-based
  • Iterative
  • Timeboxed 
  • Risk Driven
  • Change tolerant

 

ASD utilizes a repeating cycle of speculation, collaboration, and learning. 

 

Speculation Cycle

 

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. 

 

Collaboration Cycle

 

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. 

 

Learning Cycle

 

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. 

 

Spiral

 

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:
    undefinedundefinedundefinedundefined
  • 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.

 

Unified Process

 

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.

 

Architecture-Centric

 

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.

 

Use-Case Driven

 

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:

 

  • Inception
  • Elaboration
  • Construction
  • Transition

 

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.

sketches and schema as a concept os rapid prototyping definition

 

Agile

 

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. 

 

Two-Week Sprints

 

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. 

 

Get a Free Copy of 'What to Expect from a Clickable Prototype?'

clickable prototype form cover

 

 

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 info@sfappworks.com or text us at 918-373-9364.

Related: Everything You Need to Know About The Agile Software Development Life Cycle

Office décor with a laptop, bright lamp and plant, as a concept of rapid prototyping 

 

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.

SF AppWorks testimonial, as a concept of a top web & mobile development company

 

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:

  1. We broke up each feature into its most basic user flow.
  2. We selected the top 2 or 3 platforms for each feature and developed proofs of concept (“POC”) for each one. 
  3. 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).

business documents on office table with smart phone and digital tablet and graph financial diagram and man working in the background, as a concept of what is rapid prototyping

 

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.

 

Related: 10 Powerful Benefits of Programming Outsourcing in 2020

 

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.

 

 
Want to see more videos? Browse through our SFAWESOME video library: 
WATCH MORE VIDEOS

avatar

Andrew Greenstein

Andrew Greenstein is the CEO and Head of Product for SF AppWorks, an Innovation Agency. Andrew is (weirdly) passionate about uncomplicating the IT process for business enterprises, adapting to new technologies and trends, and helping to make technology accessible to anyone who can benefit from it...so everyone. When he’s not participating in hackathons with his team of developers and designers or helping clients improve their product development and innovation processes, he’s either playing basketball, traveling the world, or playing drums/piano. Andrew writes, speaks, and consults on the topics of innovation processes, Agile methodologies, and design thinking. He’s also an aspiring dog trainer to his golden retriever, Taco.

COMMENTS