What Is an MVP and Why Is it Crucial for Agile Software Development? | Far Reach Blog

MVP Cadillac Concept

What is An MVP in Agile Software Development? 

A minimum viable product (MVP) is a product that has been minimally developed but still meets the requirements of the market. An MVP is used to test out ideas quickly and cheaply before investing a lot of time and resources into developing something bigger.

MVP (Minimum Viable Product), the Core of the Agile Methodology

An MVP is a concept from agile scrum that refers to a product that has just enough features to satisfy the needs of early customers and, more importantly, give them something to provide feedback on to shape the future of the product.

The real value of an MVP lies in the learning opportunities it provides. Instead of jumping the gun and creating all the features you think users want in a single iteration (a process that’s lengthy and prone to errors), you do it in “sprints” or stages and you learn as you go.

Let’s use a manufacturing example. If your customer asks you to design and build a car, what can you do to shorten the development process?

First off, start by asking what they need. As in what they REALLY need. Why do they want the car? They need transportation, right?

According to the agile/scrum methodology, your MVP should be the first product that satisfies the transportation need. In this case, that could be a bike. It’s not fast, it’s not ideal, but it starts to take care of the problem.

Next, as you identify pedaling as the users’ main frustration with the bike, you can upgrade it to a motorcycle. And, as you keep learning about transportation means, you can finally build the car—maybe starting with a Honda and working your way up.

The advantages of starting with MVPs via the agile approach include:

  • Speed to Launch: A bike takes much less time to design and build.

  • Flexibility: While you work toward the final product, the client has something to use and test.

  • Better Products: As you keep working on your final product, you learn more about your client’s expectations in real time, so you reduce the chances of building something that no one wants.

Building cars is not exactly our area of expertise, but it’s an easy-to-understand analogy for many people. Henrik Kniberg did an excellent job of explaining this analogy and using it to demonstrate the value of starting as simply as possible and developing in iterations. 

Learn more about the car concept. 

Why Agile/Scrum Uses MVPs

The waterfall methodology—building out a product to completion before putting it into customers’ hands—used to be how custom software was built. But this approach led to budget issues, unhappy users, and products that were already outdated at launch. 

By starting with an MVP, companies can release updates consistently, learn along the way, prioritize what they confirm users want, and avoid building unnecessary features. 

Save Time, Save Budget, Reduce Risk

As we learned earlier, the best way to avoid wasting time and money is to start small and iterate. That’s why agile/scrum uses MVPs, a simple version of the final product that solves the most important problems.

In other words, if you have a problem, you can solve it with an MVP. You can learn quickly what works, what doesn’t, what users want, and what they don’t. You can take those lessons and prioritize further development to expand features, add functionality, implement automation, and more. 

By starting with an MVP, you don’t waste time and money guessing. You make decisions based on facts and feedback.

MVPs Aren’t Just for Startups

While MVPs are commonly associated with startups, they’re not necessarily only used by them. They’re also used by larger companies that want to get feedback from customers early on. Companies may choose to use MVPs if they need to validate a new idea or concept. Or they might use MVPs to gauge interest in a new product.

MVPs can help enterprises:

  • Save time and money by getting feedback early on
  • Validate their product idea quickly and cheaply
  • Focus on the most important features of their product
  • Get their product to market faster

Breaking Down the MVP

There’s no standard definition of an MVP, but some common features MVPs share include:

  • A focus on the core functionality that is necessary to deliver value to the user
  • A minimum feature set—just enough to get the job done
  • A simplified design that is easy to use and understand
  • A quick turnaround time so the product can be released and feedback can be gathered as soon as possible

An MVP Meets the Minimum

“Minimum” is an arbitrary term, but if you can balance the task of building just enough functionality for users to complete the chosen task and solve their problem—without extra features—that’s the golden standard of minimum. It’s about getting to “good enough” and putting a rough product in users’ hands. 

Doing the minimum can be hard for those of us in software development because we strive for the highest quality product possible. But it’s important to get a minimum version out into the world to help you move toward that closer-to-perfect product more effectively and with less risk.

An MVP is Viable

For an MVP to be useful, users have to be able to solve their problem or complete their task with it. It might be clunky or lack design elements, but fixing those can come later. Can a user get from current state to desired state with your MVP?

An MVP is a Product

Again, “product” is subjective. Does it have to be entirely custom? No. Could it start as a spreadsheet template? Maybe. Do users need to be able to access it on mobile devices? That depends. 

For startups, their MVP “product” is often a first version that can be used by beta testers to collect feedback. But for enterprises, an MVP could be a potential new feature within an existing system.

 

Building a Custom Software System?

Learn the benefits of outsourcing to an experienced software development partner.

 

Building a Custom Platform—Start With the MVP 

So let’s take a look at how the agile process and the MVP concept can be applied to software development by using a hypothetical project.

Meet Medical Clinic X, an organization made up for the purposes of this anecdote. It runs several mobile units that provide basic medical services in remote communities and urban areas where access to medical services is difficult or restricted. Many of its patients don’t have or are reluctant to use forms of ID, don’t have a permanent residence, and have difficulty obtaining prescription medicines. 

Medical Clinic X found that none of the existing electronic health record (EHR) platforms allowed the providers to efficiently keep records of such patients and the treatments they’d been prescribed. They needed a custom solution and decided it would be better to develop one from scratch that they could then further customize as their needs evolve, rather than extend an existing solution.

If Medical Clinic X contacted Far Reach looking for a custom EHR, here’s (at a very high level) how we’d structure the project. First, we’d work with the Medical Clinic X team and providers to understand the highest priority needs and overall goals. 

Based on that research, we’d map out a backlog for an MVP (aka the bike) that focuses on the most urgent pain paints. This hypothetical MVP would integrate a variety of patient identification methods for enrollment purposes and would otherwise have only basic features for keeping patient records: Who that patient was, when they came to the clinic, what problems they had, and what treatment, if any, was prescribed. 

After the MVP was rolled out, we would continue working down the feature priority list, building new functionality as we were learning from and improving the system based on its real-world implementation. 

By taking this approach and getting something into the hands of the client, we would learn more quickly what worked well and what didn’t. The client could start utilizing the platform and its high-priority features as lower-priority functionality was built out to turn the “bike” into a motorcycle, a car, and eventually a Cadillac. 

Agile MVP Examples

MVPs can take a lot of different formats.

  • A landing page that gauges how visitors connect with your pain point
  • A low-code or no-code version of an idea
  • A product prototype with minimal features and design
  • A process in which manual processes happen behind the scenes until they can be proven and automated
  • Preselling a product before you build it to measure interest and expectations
  • A basic platform that does one thing really well

For most of our custom software clients, an MVP involves mapping out the most critical features and functionality to get the system into the hands of users. 

How to Determine Your MVP

There are many ways to determine what to include in your MVP and when it might be ready for user testing:

  • Interviewing potential users
  • Observing competitors’ products
  • Conducting usability studies
  • Surveying existing customers
  • Collecting analytics

We often use the Value Proposition Canvas to identify why we’re building what we’re building and for whom. 

Using agile/scrum, we then create a prioritized backlog based on research, existing data and analytics, user feedback, stakeholder input, and more. We can take this prioritized backlog and sort it a few different ways.

Need vs. want vs. nice to have – An MVP should only include items labeled as needs. Items in the “want” and “nice to have” category can wait. 

Urgent vs. important – Understanding the problems and priorities of your potential users will help you identify what’s truly important without getting pulled away by seemingly urgent distractions.

Urgent vs Important Matrix

An MVP Is Just the Beginning…Or the End

You can scrap an MVP without having invested too much. You can also choose to build on an MVP and turn it into a full-fledged product.

The key is to know when to do which.

If your hypothesis didn’t pan out, it’s OK. The MVP may have taken a few weeks to spin up, vs. 18 months of development using old waterfall methodologies. 

If you prove your hypothesis, you learn a lot along the way, build a base of engaged testers and users, and can continue developing while you decide whether or not to leave the MVP out there in the world. 

Wrapping Things Up

Custom software development takes time. During that time, market demands can change—so can the needs of the client. The agile approach helps us build a product that’s adaptable, scalable, and meets the users’ needs as they evolve.

Want to discuss this further or have questions about MVP and agile development? Reach out!

Curious about the terms we used in this post? Demystify our nerd-speak.