Key takeaways:
When you have an idea for cutting-edge software, you want to start building it right away. However, in a world of fast-changing markets and emerging technologies, starting development without testing the waters is not a safe strategy.
What can you do to eliminate the risks? There are a few approaches to help you make wise business and technical decisions, but one of the best practices is starting development with a proof of concept (PoC).
In this article, you will learn
Let’s start with the basics.
A proof of concept is one way to validate your idea before you start building a new software product or upgrading an existing one. Unlike other idea validation approaches in software development, a PoC aims to check the technical feasibility of the solution you plan to build. It answers one simple question: Can your idea actually be implemented?
There are three main types of proof of concept: proof of technology, steel thread, and pilot project.
A proof of technology is a piece of functionality that will form the basis of your future application. Preparing this type of PoC involves developers building core product functionality. A proof of technology helps you validate your choice of technology stack and prove that the planned features can be implemented with the selected libraries and integrations.
A steel thread is a wider concept and isn't limited to testing technological aspects of the product. It also covers design, software architecture, monetization, UX copy, etc. With a steel thread, you still test the product’s feasibility, but you also include the context.
A pilot project is a high-level proof of concept that is similar to a minimum viable product. A pilot project might include several core features and can be tested among focus groups. A product built according to this type of PoC is not ideal but still works. Its aim is to check if your audience is interested in such a solution and if the feature set can meet users’ needs.
Since a proof of concept deals with multiple aspects of software development, it is often confused with a prototype or a minimum viable product. However, these are all different concepts, each serving a different purpose. Let’s shed some light on the differences between a PoC, a prototype, and an MVP.
These three terms are often used interchangeably, but that is a mistake. If you’re working on your product from scratch, you’ll likely deal with each of these concepts at different software product development stages.
A proof of concept is part of the project discovery phase — the first phase of product development aimed at validating your idea and deciding on the best way to bring it to life. The PoC focuses on checking whether your desired functionality can be implemented with the chosen technology stack. If developers face limitations, they either search for alternative tools or conclude that the initial idea is not feasible.
Depending on its type, a proof of concept can be presented as a document or a piece of working functionality. The PoC should be approved by stakeholders and, in some cases, by investors, but it rarely gets into the hands of end users.
A prototype is an early draft of your software that is also built during the discovery phase. An app prototype is a physical representation of how the software will look and work when it’s ready. It usually consists of clickable screens that represent features and show relationships among app components. A prototype helps stakeholders see how attractive, interactive, and user-friendly the app will be.
During the prototyping stage, stakeholders can also show a clickable version to investors to raise more money. Stakeholders can also ask a limited number of potential users, known as a focus group, to try out the prototype and can collect their feedback on what to change.
A minimum viable product is a working application that has a minimum set of features that meet the target audience’s basic requirements. An MVP for startup development is created after the discovery phase and includes frontend and backend development as well as quality assurance activities.
An MVP is the first version of your product that you release to a wide audience. However, it isn’t the final one. After launching an MVP, you should continue to gather user feedback and work on improvements. An MVP increases your chances of attracting more funds: investors can see a working solution and meet the team that stands behind it, improving their faith in the product’s success.
Let’s summarize the main differences between these three concepts:
PoC | Prototype | MVP | |
Aims to | validate technical feasibility | provide an early product draft | make the product available for real users |
Presented as | a document or a piece of working functionality | a clickable prototype | a working app |
Available to | stakeholders and investors | stakeholders, investors, and focus groups | real users, stakeholders, and investors |
Now you know what a proof of concept is and isn’t. The next step is to find out how and when you can take advantage of a PoC.
Starting with a proof of concept is an obvious step when you launch a new project. However, it’s also useful to take advantage of a PoC when you need to change something in an existing business. Let’s see how a proof of concept can help in both situations.
Starting with a proof of concept at the beginning of your project, you can make sure you will be able to implement your product from the technical perspective.
One of our clients, the owner of a data backup platform, came to us with an idea to create an app that would back up data from different solutions. To make sure we could build the app according to the client’s requirements, we started the project by building a proof of concept. We built a piece of functionality that could receive and back up data from GitHub. After validating the feasibility of the idea, we continued development on the basis of the PoC.
If you already have a working application and you want to scale or improve it, you will also benefit from a PoC. You may face not just the limits of your chosen development tools but also limitations of the existing software.
Walmart, for example, completed two proof-of-concept projects before they launched a blockchain-based food traceability system and integrated it into their existing software. The PoC allowed Walmart to reduce the traceability time for products from 7 days to 2.2 seconds. Once they checked that they could implement this functionality in their system, they were able to quickly trace up to 25 products. Nowadays, Walmart has a worldwide reputation as a safe food business.
While some business owners might want to skip the idea validation stage and start development faster, examples of world-known companies show that a PoC brings a lot of benefits to the business.
When Amazon’s owners were on their way to entering the software industry, they tried different methods to get into the market.
There were a number of factors that influenced Amazon’s decision to start the foray into web services that would ultimately become AWS. We had several proofs of concept in the Amazon Product API and the Amazon Seller API demonstrating that the area was worthy of attention. It was simply a better way to build software than the traditional methods used at that time.
— Collin Bryar, Working Backwards
If the AWS example hasn’t convinced you to start development with a PoC, then this list of benefits just might.
Building a full-fledged product without checking its viability, let alone its technical feasibility, can result in more expenses than you expect at the beginning of development. It would be a pity to invest tens of thousands of dollars in hiring, onboarding, and initial development just to find out that your idea is too innovative and can’t be implemented with available development tools. With a proof of concept, you move on to the next step without risking too much time and money.
You already know that the main aim of a PoC is to prove that you can bring your idea to life from a technical standpoint. In addition, you can validate your tech stack. At this point, the development team will define the toolset that will best meet your current needs and future plans.
As you build a proof of concept during the first stages of startup development, you’re able to foresee technical risks early in the development process. A software architect together with a QA engineer can assess common bottlenecks of a particular technology and offer ways to prevent them.
However brilliant your startup idea is, there’s still a risk of failure. One of the main reasons why startups fail is skipping the discovery phase. By starting work on your application by creating a PoC and gathering early feedback from focus groups, you minimize the risk of building the wrong product. Additionally, you have one of the first deliverables ready on your way to release, being a nice motivation to keep working on the project.
If you want to attract investors to finance your MVP, you have to convince them your idea is worth it. However, investors don’t decide to support a business based on words. Once you have a PoC in hand, you can present your vision for implementing your idea to investors and convince them to fund it.
While it isn’t necessarily the case, a proof of concept can grow into a working product. So the resources you invest at the PoC stage can count towards MVP development.
Once you decide on creating a proof of concept, you should follow these key steps:
Software development requires you to set specific goals. The more clearly you define your goals at the beginning of your project, the more you will benefit from every deliverable.
The first thing you should do is define what you want to achieve with a PoC. You can limit yourself to choosing the technology stack and feature list for your application. If your expectations go beyond validating technical feasibility, you can create a simple prototype or even launch a pilot project to get deeper product feedback.
Once you’ve decided what type of proof of concept you’re going to implement, it’s time to involve people responsible for its development. You will need a software engineer with knowledge of specific technologies who will be in charge of the technical side of PoC creation. As a stakeholder, you can take part in this process too to make sure that your vision is reflected. Or you can delegate this task to a project manager and only assess the final result.
Once the team is formed, decide on the functionality you want to build as a proof of concept. This functionality should be a piece of software that is difficult to implement from a technical standpoint. Also, you can try implementing the same functionality with different development tools to check their efficiency and make a grounded decision.
An operating environment is a combination of programs for app development — such as a source code editor, a compiler, and a debugger — that allow software engineers to work on an app without going live.
Running a small piece of software and assessing its performance will allow your team to understand if it’s technically feasible.
There are two possible results when evaluating a PoC:
A proof of concept allows you to pivot your idea at low cost and with minimal risks.
Starting product development by building a proof of concept is one of the best software development practices. Once you prove your idea can be brought to life from a technical standpoint, you can proceed to work on your product and even attract investors in the early stages of product development.
Q: When should you use a proof of concept?
A: You should use a proof of concept every time you want to start a new project or add a new feature to an existing product. In software development, validating any new idea with a proof of concept is a safe way to build an application that will meet your business needs.
Q: Why is a proof of concept important?
A: It’s important to start product development with a proof of concept if you want to build a solution that your customers need. Deciding on the technical feasibility of your product from the beginning will help you choose the right development path.
If your idea isn’t viable, you’ll have a chance to pivot and come up with a better solution without spending much time and money.
Q: What is the main difference between a prototype and a proof of concept?
A: A proof of concept is a document, presentation, or piece of minimum working functionality that aims to prove the technical feasibility of your idea. A PoC is created for internal use among stakeholders and the development team to assess if the idea is worth investing in.
A prototype is an early draft of your product. It consists of a number of clickable screens that show how your product will look and feel. A prototype reveals dependencies between different features and aims to identify the best UI/UX solutions for your product. Besides internal use, a prototype can be made available for a small focus group to gather feedback.