One of the first milestones of any software project should be to define an MVP, or Minimum Viable Product. MVPs are a great way to validate an idea. An MVP is the smallest set of features that provides value to users.
Defining an MVP will help you:
Mitigate project failure by minimizing the effort to create a viable product
Prioritize the most important features
Receive feedback early on from real users
Start the process of iterative development and delivering incremental value to users
An MVP should be made to be as small as possible while still creating utility for the end user.
Creating an MVP can be a challenging task; it forces you to figure out several things up front such as how you will build and deploy code, how you will test the project, what technologies to use, how many people are going to develop the product, who the end users are, and what is most important to your end users.
Building an MVP can be made easier by following a solid process and taking some time to plan up front. Even if the scope of what you are initially building is intentionally small, there are still many things to think about and consider.
1. Understand the problem domain
The first step of defining an MVP is to understand the problem domain. The best way to do so is to find potential users or experts in the field. Maybe you are an expert - even if you are, find others in the field and get their opinion. Try to find out what the problems are rather than what they say they want or need. Most users will be able to articulate their problem much more accurately than they will be able to articulate a solution and tell you what they need. If it's a consumer product, identify potential users within key demographics and survey them. If you’re building a B2B product, find experts in the industry and talk with the teams that will be using your product.
2. Research existing solutions
In addition to talking to potential users, significant research should be done regarding solutions that are attempting to solve the same problem. If there are other applications in the same space, use them. Look at the non-digital solutions for the same problem. Where can they be improved by technology? Why do they work? What concepts need to be brought into your software project? Once you have exhausted your research, it’s time to define your MVP.
3. Identify the most important features
In order to define your MVP, it is critical to understand and identify the most important features. Start by listing every feature that you can think of. What is the core of the product? What can users not live without? What would be nice to add to make the experience more efficient? This is a pure brainstorming activity - meaning there are no bad ideas. Write them all down and don't be critical. Don't spend too much time exploring each idea. There will be time to explore the ideas and curate this list later.
4. Prioritize your important features
Once all of the features are recorded, it’s time to prioritize them. The goal is to order all of the features in a list, from most important to least important. There are several sophisticated and formulaic ways to approach feature prioritization but a simple and efficient technique is to use relative prioritization with sticky notes on a whiteboard. Write each feature on a sticky note and place them on a whiteboard in a single column, from top to bottom. Start with the feature at the top of the list and compare it with the feature directly underneath it. Is the first feature more important and does it provide more value to users than the second feature? If not, move the first feature below the second feature. Keep going through the list of features and move the more important features above the less important ones. Continue the activity until you have an ordered list. Be critical in this step. There will be time to correct it later but this order will dictate which features are built first.
5. Define your scope
Using your prioritized list of features, you can now define the scope of your MVP. Again, the goal is to find the smallest set of features that will still be useful to your end users. Start at the top of your prioritized feature list and work your way down. Look at the first feature and evaluate - is this feature enough to provide value to your users on its own? If it is, you can stop there; that is your MVP, one feature. If the answer is no, keep going down the list. Are features 1 and 2 together enough? What about 1, 2 and 3? Keep going until the answer is yes.
Be critical when evaluating the features that deliver enough value to users to stand on their own. The smaller the MVP, the higher the chance of success. You can immediately go back and add more features after your MVP, but you will have risen above the X percentage of software projects that never delivered anything. Additionally, you will be able to start getting feedback from users that will help your future prioritization efforts and, perhaps, reveal new problems to tackle.
What about the rest of the features you didn’t identify to build? All of the features that did not make the cut for your MVP are the start of a roadmap for your product. Once the MVP is built and delivered, you will have feature candidates to include in your product to quickly improve it through continued incremental and iterative development, along with the feedback from your users.
You’re now on the path to minimizing the effort of building your product while delivering incremental value to your users.
Now that you’ve defined the scope of your MVP, it’s time to communicate your vision with others, break down your features further for development, and start building your MVP.
Need help defining your MVP scope? Already defined your scope and need help building your MVP? Reach out to us at Onion River Consulting and we can help you with your custom development project - firstname.lastname@example.org.