Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save artificialarea/7b8d5c3a3c9278d0e15f7dd43d1102a5 to your computer and use it in GitHub Desktop.
Save artificialarea/7b8d5c3a3c9278d0e15f7dd43d1102a5 to your computer and use it in GitHub Desktop.

src: https://github.com/sparkrnyc/sparkr_general_docs/wiki/What-are-Prototype,-POC,-Alpha,-Beta-and-MVP

Agile is an iterative way to develop and release very quickly many small versions and grow your application by adding new features in each new version or release. As your application grow bigger and more mature, your business also grows and keeps pace with the development of the application. In other words, business processes and application grow parallel and dependent on each other.

Releases are named or referred to often by using so-called [[Semantic Versioning|http://semver.org/]], which looks like v0.1.2. You see 3 numbers that represent versions for MAJOR.MINOR.PATCH updates:

  • The first number refers to MAJOR releases, in this example '0'. Major refers to releases from 0 (Prototype to Beta) to Release (1 to n), and incrementally to versions that change the User Experience or the application drastically.
  • The second number refers to MINOR releases, in this example '1'. Every scrum is in principle a new Minor release.
  • The third number refers to PATCH releases, in this example '2'. You use Patch releases to fix bugs and super small changes.

In this cycle of application releases, some releases are so significant for the business that we give them special names:

  1. Prototype
    1. lo-fi Prototype
    2. Hi-fi Prototype
  2. Proof of Concept (POC)
  3. Pre-Alpha
  4. Alpha
  5. Beta
  6. Minimum Viable Product (MVP)
  7. Launch

All the terms below are interpreted slightly different by many people still, and there is no strict gold standard definition for each of the terms. Nevertheless, these terms will help you define some milestones in your development process.

Prototype

Purpose: user validation

The prototype is often done in a tool like MarvelApp.com, InvisionApp.com, or Sketch.io. It is a visual simulation of what the User Experience (UX) of your App will look like. The purpose is that a 'focus group' of 'sponsor users' like friends, family, stakeholders, and domain experts can give you immediate feedback to validate your assumptions and ideas, even before you start coding already.

Proof of Concept (POC)

Purpose: testing technical feasibility of features, test fundamental business hypotheses

In the Proof of Concept or POC, you already validated your assumptions and have changed the prototype to comply to the feedback by the sponsor users: your assumptions should no longer be assumptions, but truths. Now the next question is: can we technically accomplish what we want to do? You make some basic architectural decisions, choose your best options for technology stack, and do a quick and rough version, much similar like you would do in a hackathon. You can probably sign up for a few hackathons or get together and lock yourself with your team up in a hotel room for a few weekends and stamp out a POC. You can hardcode data, ignore generic functionality like login and signup, messaging, push notifications, but focus on core workflow. You are testing the viability of features.

Minimum Viable Product (MVP)

Purpose: the MVP forms the basis for a VC investment, from feature to product, validate as many aspects of the application as possible for maximum learning at least development

The term MVP was popularized by Eric Reis in his book '[[The Lean Startup|https://en.wikipedia.org/wiki/Lean_startup]]'.

"MVP is the version of the product that enables a full turn of the Build-Measure-Learn loop with the minimal amount of effort and the least amount of development time. The minimum viable product lacks many of the features that may prove essential later on."

With a POC, the next step is to make the POC work properly, so you can show off your application to investors like VC, angel investors. The difference between POC and MVP, is that in the MVP, you now include the complete feature set and make sure they function relatively stable. In the POC you still 'cheat' by hardcoding some data, pulling some data from local array rather than from an API server, leave out generic functionality like Messaging or Payment. In the MVP, you are no longer testing features, but you are testing the product as a whole. In the process from POC to MVP, you also go from feature to product.

Incubators and Accelerators often help you grow from POC to MVP.

Pre-Alpha

Purpose: Iterate further development between MVP Alpha, market validation.

I just included the term here, because you sometimes will hear terms like pre-alpha or pre-beta. You can endlessly vary on the 'pre-' terminology and create some exclusive buzz about releases by giving sneak peeks to some group of power users for instance. In Alpha, you also look at the number and location of users, interests, preferences, habits of users, and investigate your pricing strategy.

Alpha

Purpose: first public release, first public testing to get real user feedback

The pre-Alpha and Alpha releases are basically the first public releases of your Prototype. You went from paper, mock-ups or protocode to actual running code and have added core features roughly. Now you are ready to get some real user feedback, but you are not ready to launch yet, you are not ready to have people expect a super stable application yet.

Beta

Purpose: Beta testing with real users

After you collected all the user feedback from the Alpha release, you have reiterated your development and significantly improved your application. In the Beta, you don't see any obvious mistakes or shortcomings anymore, you already have processed initial user feedback, but there are likely still some hidden bugs, some people under some circumstances might still experience some instability, you are ready to test scaling up your application for real usage, but you don't yet trust 100% how your application will hold against real usage. The Beta relases is a Release Candidate (RC) – compared to your Alpha release, the core feature set is stable with greater security, resilience and efficiency.

Launch

Purpose: Your product is ready, now go build a business

TBD

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment