Rapid Prototyping

Olio Apps has built many prototypes for clients and our own product development efforts. As a result, we have developed a robust practice for rapid and effective prototyping.

Rapid Prototyping

Capabilities

Olio Apps leverages the following capabilities to build effective prototypes and production systems:

  • Mobile UI development - native applications for iOS & Android
  • Web UI development - web-facing UI applications
  • Backend development - APIs, relational databases, service integrations, and analytics
  • VR/AR development - interactive 3D graphics and 360-degree video
  • Software architecture - high-level technical design and oversight
  • Business analysis - requirements gathering and use case analysis
  • Product design - functional design and information design
  • UI/UX design - high-fidelity mockups, low-fidelity mockups, and wireframing

The Purpose

The purpose of a prototype is to get answers to burning questions as quickly as possible.

  • Did we accurately capture what the user needs?
  • Does our solution match up with what the user needs?
  • Is the solution intuitive or confusing?
  • What changes would make the solution better fit the need?
  • What is the most important thing to focus on next?
  • What should we drop or postpone?

We get these questions answered by talking to customers and end users and using their feedback to inform designs, get prototypes into their hands, and watch them use and react to them. The faster you can do this, the sooner you can course-correct to a better solution.

The Process

Identify the starting point and the end point

Some projects begin with nothing more than an idea, whereas others may have wireframes, mockups, use cases, existing systems to integrate with, and in some cases, existing prototype code. A short period of discovery is required to learn where we are starting and what we collectively hope to achieve by the end.


Rapid Prototyping

Clarifying stakeholders

  • Identify the product owner responsible for evaluating success throughout the process
  • Identify one or more end user personas
  • Identify the teams who need to coordinate, which include UI/UX design teams and backend or frontend teams

Create a continuous, rapid delivery structure

  • Establish points of contact between the customer and Olio Apps
  • Set up a real-time communication channel (such as Slack)
  • Agree upon a formal evaluation schedule (such as once a week)
  • Automate the continuous deployment of the prototype if possible

Engage the rapid build / feedback cycle

The faster the feedback loop between prototype development and customer feedback, the more effective your prototyping efforts can be. Our goal at Olio Apps is to have a short, tight feedback loop between iterations of software development, and feedback from customers and end-users.

  • Pick a goal for the current iteration
  • Identify any blocking points early—for example, if there are hard dependencies that we cannot work around
  • Build UX mockups, UI clients (mobile, web, VR/AR, etc.), and backend API services
  • Communicate the build result and get feedback from the customer’s product owner
  • Repeat!

Engaging end users

Talking with end users or potential users within the product’s target market and getting their feedback is the best way to create a product that solves real problems. It’s important to establish contact with a group of potential end users who are willing to provide feedback and begin engaging with them early. Olio Apps has user research capabilities and can incorporate these into the build cycle of a prototype.

What success looks like

At every iteration, we have delivered a working prototype that helps answer the questions posed at the beginning of the iteration.


Phone App

At the end of the prototyping period, the customer should have a clear understanding of whether or not the solution has solved the business problem identified at the beginning of the process, or if we should pivot to a new solution.

Economies of scale

If we are building multiple related types of projects, we can achieve economies of scale. For example, we can reuse code between two or more apps that access the same server backend. Another example is if we are building two sides of the same project, such as the client and server, or two UIs serving distinct roles (e.g., mobile and website portal for a service). In this case, we can iterate quickly on both sides, having more control over integration.