The Minimum Viable Product and Incremental Software Development

the-lean-startup-bookThe concept of the Minimum Viable Product (MVP) was popularized by Eric Ries in his bestselling book “The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses”. According to Ries, the MVP is the “version of a new product which allows a team to collect the maximum amount of validated learning about customers with the least effort.” The MVP should have the core features which allow it to be deployed to some real customers in order to get initial feedback, but not more.

build-measure-learnThe MVP is used in the context of the “build-measure-learn” feedback loop. From the Lean Startup site: “The first step is figuring out the problem that needs to be solved and then developing a minimum viable product (MVP) to begin the process of learning as quickly as possible. Once the MVP is established, a startup can work on tuning the engine. This will involve measurement and learning and must include actionable metrics that can demonstrate cause and effect question.”

Now the question is: What is the right way to build the MVP? Of course we should adopt some form of incremental development, in which the MVP should be concluded after a few initial iterations. Then, the next iterations should be used to add new features based on the conclusions of the “build-measure-learn” feedback loop. Thus it is very important to plan the incremental development process so that it will fit the progress of the feedback loop.

Incremental Software Development

Any approach that divides the software development process in small iterations can be called “incremental.” However, there are several possible ways to build a product incrementally. This was very well illustrated by John Mayo-Smith in his article “Two Ways to Build a Pyramid”.

In this metaphor, the traditional way to build a pyramid is to start with the base and then, with each increment, add a new level on top of the previous one. This is certainly an incremental process, but only after the last iteration we obtain a real pyramid. During all other steps of the process we may have at most an “under-construction” pyramid.

flat_pyramid

An alternative approach is to start with a small pyramid and then use each additional iteration to increase its size. In this case after each step we have a full pyramid, which keeps growing in size incrementally.

growing_pyramid

Of course, if we want to build a MVP as part of the “build-measure-learn” feedback loop, the second approach is the right one. The second approach allows us to have the MVP (small pyramid) very fast, and then have a deployable product with new features (bigger pyramid) after each iteration.

In summary

The Minimum Viable Product should have enough features to collect feedback that will drive the implementation of additional functionality through the “build-measure-learn” loop. The MVP should be built using an incremental approach, which should be planned to have a deployable version after each iteration.

What do you think? Have you used similar approaches at your company? Please share your experience using the comments below.

About Hayim Makabee

Veteran software developer, enthusiastic programmer, author of a book on Object-Oriented Programming, co-founder and CEO at KashKlik, an innovative Influencer Marketing platform.
This entry was posted in Agile, Lean Development, Software Evolution and tagged , , . Bookmark the permalink.

13 Responses to The Minimum Viable Product and Incremental Software Development

  1. Pingback: Link Roundup, 11/12/14: Minimum Viable Architecture | SATURN Network Blog

  2. Pingback: Manifesto for Adaptable Software Development | Effective Software Design

  3. Pingback: Invention Is Not Enough For Innovation | Effective Software Design

  4. Pingback: Indefinite Optimism: the Problem with the Agile and Lean Mindsets | Effective Software Design

  5. Brainhub says:

    Great post Hayim – Short & Sweet about the MVP. Basics that each person in IT should know.

    I added a few examples on how I validate my digital products and approaches to create an MVP here: https://brainhub.eu/blog/2015/12/24/what-is-mvp/

  6. Pingback: LENGUAJES MODERNOS Y POR QUÉ APRENDER. – Script Innova

  7. Pingback: How to control software development costs? [5 practical tips for PMs]

  8. Pingback: Three Project Pitfalls (And How To Avoid Them) | Janeiro Digital

  9. Pingback: What is an MVP? - YourCTO

  10. Pingback: What is an MVP? – YourCTO

  11. Pingback: Starting-Up with ThePowerMBA | Effective Software Design

  12. Hariharan says:

    During software development, in some way we will use incremental approach. But follow incremental approach from scratch lies the challenge. We use MVP to develop our products and to finalize the feature for MVP is a hectic task.

Leave a comment