---
title: "What is a Proof of Concept?"
canonical: https://wavect.io/glossary/proof-of-concept/
language: en
description: "A throwaway build that answers one question: is this technically possible. Not a product, not an MVP, not something you ship to users."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

ENGAGEMENT

# Proof of Concept

A throwaway build that answers one question: is this technically possible. Not a product, not an MVP, not something you ship to users.

Last reviewed: 2026-07-22 by [Kevin Riedl](/team/kevin-riedl/) [wiki ↗](https://www.wikidata.org/wiki/Q139796365)

A proof of concept exists to retire one specific technical risk. Can this model hit the latency we need. Will this integration actually work against the legacy system. Can we prove the cryptography before we design a product around it. A PoC answers "is this possible" and nothing else. It is built fast, judged on whether it works, and then thrown away.

The distinction that costs companies the most is PoC versus MVP versus prototype. A PoC answers “is this technically possible” and is aimed at your own team. A prototype answers “does this feel right” and is aimed at design and usability, often with no real backend at all. An [MVP](/glossary/mvp/) answers “will anyone actually use and pay for this” and is a real product, shipped to real users, just scoped to the smallest version worth their time. They have different audiences, different quality bars, and different definitions of done, and the difference maps directly onto where you are relative to [PMF](/glossary/pmf/).

The common and expensive mistake is shipping a PoC as if it were production. The code that proved a thing was possible was written to prove a thing was possible: no error handling, no tests, no security review, shortcuts everywhere. When the demo impresses someone and the decision is made to “just ship it,” you inherit all of that as your foundation. The honest move is to treat the PoC as the answer to a question, then build the real thing properly.

One way to make that discipline hold under pressure: write down the single question the PoC exists to answer before you start, and the criteria for a yes or a no. “Can this model classify support tickets at 90% accuracy on our last 500 tickets” is a question with a clear verdict. Without that written question, a PoC quietly mutates into a half-product, the team keeps polishing it because it “almost works”, and you have slid into building V1 on disposable foundations without anyone deciding to. The written question is also what protects you from the sunk-cost pull to ship the throwaway code: once the question is answered, the PoC has done its job and earned its deletion, no matter how nice the demo looked.

Wavect runs a PoC when there is genuine technical risk worth retiring before committing to a build. Most projects do not need one; they need a [discovery-phase](/glossary/discovery-phase/) that scopes the work. We will tell you which one you are looking at. When the open question is commercial rather than definitional, use the decision guide to [paid pilot vs PoC vs design partner](/blog/paid-pilot-vs-poc-vs-design-partner/).

// FAQ

## FAQs

### Proof of concept vs MVP?

A PoC answers whether something is technically possible and is for your own team; it gets thrown away. An MVP answers whether anyone will use and pay for the product and is shipped to real users. Confusing the two is how teams end up shipping disposable code as their production foundation.

### Can a proof of concept become the product?

It should not. PoC code is written to prove one thing works, with no error handling, tests, or security. Shipping it as production means inheriting all of those shortcuts as your foundation. Use the PoC to make the decision, then build the real thing properly on a clean base.

### When do I actually need a proof of concept?

Only when there is real technical risk worth retiring first: an unproven integration, a hard performance target, a novel cryptographic or algorithmic claim. If the risk is product or market risk rather than technical, you want a discovery phase or an MVP, not a PoC.

Related terms

- [MVP](/glossary/mvp/)
- [Discovery Phase](/glossary/discovery-phase/)
- [PMF](/glossary/pmf/)

Related services

- [Custom Software Development](/services/software-development/)

Related case studies

- [Bond Analytics Platform](/case-studies/bond-analytics/)

Related guides

- [Fixed price vs time and materials](/software-development-guide/fixed-price-vs-time-and-materials/)

Talk to us

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/glossary/proof-of-concept/#term",
      "@type": "DefinedTerm",
      "alternateName": [
        "PoC"
      ],
      "description": "A throwaway build that answers one question: is this technically possible. Not a product, not an MVP, not something you ship to users.",
      "inDefinedTermSet": "https://wavect.io/glossary/#termset",
      "name": "Proof of Concept",
      "termCode": "proof-of-concept",
      "url": "https://wavect.io/glossary/proof-of-concept/"
    },
    {
      "@id": "https://wavect.io/glossary/proof-of-concept/#webpage",
      "@type": "WebPage",
      "about": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "author": {
        "@id": "https://wavect.io/team/kevin-riedl/#person",
        "@type": "Person",
        "name": "Kevin Riedl",
        "url": "https://wavect.io/team/kevin-riedl/"
      },
      "dateModified": "2026-07-22",
      "description": "A throwaway build that answers one question: is this technically possible. Not a product, not an MVP, not something you ship to users.",
      "headline": "Proof of Concept",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-07-22",
      "mainEntity": {
        "@id": "https://wavect.io/glossary/proof-of-concept/#term"
      },
      "mentions": [
        {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        {
          "@type": "Service",
          "name": "Custom Software Development",
          "url": "https://wavect.io/services/software-development/"
        }
      ],
      "name": "Proof of Concept",
      "reviewedBy": {
        "@id": "https://wavect.io/team/christof-jori/#person",
        "@type": "Person",
        "name": "Christof Jori",
        "url": "https://wavect.io/team/christof-jori/"
      },
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          ".gls-single__h1",
          ".gls-single__tldr"
        ]
      },
      "url": "https://wavect.io/glossary/proof-of-concept/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/",
          "name": "Home",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/glossary/",
          "name": "Tech, product & engagement glossary",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/glossary/proof-of-concept/",
          "name": "Proof of Concept",
          "position": 3
        }
      ]
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "A PoC answers whether something is technically possible and is for your own team; it gets thrown away. An MVP answers whether anyone will use and pay for the product and is shipped to real users. Confusing the two is how teams end up shipping disposable code as their production foundation."
      },
      "name": "Proof of concept vs MVP?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "It should not. PoC code is written to prove one thing works, with no error handling, tests, or security. Shipping it as production means inheriting all of those shortcuts as your foundation. Use the PoC to make the decision, then build the real thing properly on a clean base."
      },
      "name": "Can a proof of concept become the product?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Only when there is real technical risk worth retiring first: an unproven integration, a hard performance target, a novel cryptographic or algorithmic claim. If the risk is product or market risk rather than technical, you want a discovery phase or an MVP, not a PoC."
      },
      "name": "When do I actually need a proof of concept?"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
