Startup & MVPBY RabIT software engineering · June 24, 2019
Many of us dream about becoming self-made successes, entrepreneurs to finally free ourselves from our 9-5 jobs and turn our dreams into a reality. Today, the internet is littered with success stories about people who have already made it big and became millionaires, hundred millionaires, billionaires even.
The path to achieving breakout success sounds simple when you hear the story of someone who already has it all figured out. However, finding the right way is much harder if you are starting from scratch. A startling amount of entrepreneurs never achieve their ultimate goals. According to statistics, only 30% of small businesses make it past their 10th anniversary.
To improve the odds of success, more and more entrepreneurial journeys start out with a simple Minimum Viable Product (MVP).
What Is a Minimum Viable Product?
The term was introduced as one of the core principles of the lean startup methodology.
An MVP is the initial version of your product that only has the core features that are essential to solving an existing problem for your prospective customers. Your minimum viable product helps you gather important feedback and estimate market interest from the earliest stages of your business. More complex features are only added in later iterations, based on the received user feedback and the development of market demand.
A minimum viable product can be a simple web or mobile application, website or a single landing page.
Illustration of minimum viable product development
A minimum viable product enables you to:
- test a product hypothesis with minimal resources
- accelerate learning in your organization
- reduce necessary development hours
- reach your actual market as soon as possible
- decrease the risks of investment
- establish your brand to users quickly
Researching and Verifying the MVP Idea
Verifying the business idea itself is a crucial step that absolutely must come before you rush into any kind of development project. You can significantly decrease the risk of investment by double checking if there is enough interest on the market for your solution.
Not even a company like Google could get away with selling a product that had no clear product-market fit (ehm… Google Glass).
Your new product or service has to offer a much needed solution for a need (or problem) that is being underserved by competitors or not served at all by anyone. You also have to make sure that the problem is pressing enough to justify the price of your solution in the eyes of potential customers.
A good cautionary tale here could be Juicero, Silicon Valley’s smart juicer that squeezes disposable packets of liquified fruits, vegetables, and other ingredients into cups. Even with 4 funding rounds and close to $120 million of total funding, they couldn’t justify the $400 price tag for a web-connected device the basically empties a drink from a bag. The company went bottoms up less than 4 years after its founding.
Know what it costs to deliver your product (materials, rent, salaries, etc.) and to acquire customers who will pay to use that product (CAC – customer acquisition cost). All these costs have to be included in your pricing as well. While breaking even helps you consistently pay the bills, it won’t be enough to become a top player in your industry. Be sure that your costs are still reasonable to customers even after adding your profit margin.
According to smallbiztrends.com, only 40% of small businesses are profitable, 30% break even and 30% are continually losing money.
The initial verification usually isn’t enough to prove that your business will be sustainable on the long run. That part will be up to your actual MVP.
You can get really creative with your idea verification methods. Use every tool at your disposal to measure the buzz around your idea. These examples are accessible to everyone for little or no expense:
- Google search
- Google Trends
- Landing pages
- Explainer videos
- User testing
Start by identifying your key customer profile and creating buyer personas. This should help you visualize your ideal client base and customize your marketing messaging to better fit their specific needs. Do your best to reach out to as many people who fit this profile as you can.
What does the minimum viable product development process look like?
Minimum viable product development has to result in a product that delivers real value to its users is a complex process that may vary depending on your industry, product type, user base and so on. For the sake of clarity, we will break the MVP development process down to the following steps:
I. Setting a hypothesis
Hypothesis-based decision making helps you avoid basing your product idea on false assumptions and prejudices.
While it might seem like a billion-dollar idea to produce a smart salt shaker with Bluetooth technology, it can’t hurt to double check first. Just to be sure.
Using this method to come up with a business idea should guarantee that it will be based on real-life demand. A good hypothesis must be:
– easily testable,
– clear and measurable,
– either clearly true or false.
The most simplified template for such a hypothesis would look something like this:
If [cause], then [effect], because [reason].
Example: If we develop an app for broadcasting nostalgic content for people born before 1970, then we can get 50,000 people to sign up for a free trial by the end of 2020, because research data shows us that 80s and 90s nostalgia is very captivating to our target audience.
Once you have gathered sufficient evidence proving that your hypothesis is true, you can start planning product development with much greater certainty.
II. Selecting technologies
Minimum viable product development can be done with any modern-day programming language. However, it is crucial that you decide from the start whether or not you are planning to develop an MVP, or a full-fledged software product. If you choose the MVP route, you should go with technologies that are highly flexible and scalable.
Due to the evolving nature of an early MVP, developers need to be able to easily make changes to the source code at all times. By choosing modern and frequently updated tech in the planning stage, you can make your team’s life much easier when it comes to implementing these changes.
You should always choose the technology your team is most comfortable with. If you are open for suggestions though, here are a few pointers:
Micro-service architectures carry great benefits for MVP development. These micro-services are comprised of small modules that communicate with each other, and sometimes with the user as well. By using modular builds we are able to decompose an application into different smaller services. This makes the application easier to understand, develop, test and become more resilient to changes in the architecture itself.
Thanks to the independently functioning modules, multiple autonomous teams can work on development at the same time. This alone can help speed up the project significantly.
However, if you are developing a really minimalistic MVP with a small team, and scalability is not a top priority yet, we would rather recommend using monolithic architecture. Its main benefits are faster development and lower hardware requirements.
Also, the developed application will be self-contained and independent from other computing applications. Later on, if scalability becomes important and more developers join the team, it should be separated into micro-services though.
A lot of developers would disagree with using monolithic architecture for MVP development today. It may be falling out of popularity, but we believe there are still cases where it’s the right call. Instead of selecting the most popular option, this decision should be made according to product strategy and technical requirements.
Language-wise we ourselves prefer to use Java, since that is what our team has the most experience with. We have also started using Go (or Golang) recently, thanks to its speed and ability to produce small, static binaries. These really come in handy if you are working with micro-services.
Regardless of the selected technologies, you can build a top-quality MVP if you invest the time and energy into planning your project properly. You can only make your development team’s life easier if you choose a modern and frequently updated language.
One of the most common pitfalls of this process is not having a clear vision of a specific end goal and focus on the most critical features.
III. Product feature development
Choosing these key features may sound easy enough, but is not always so straightforward. This is why you needed to do all that research first, and verify your concept before moving on to product development.
If you already have a good understanding about your market, the development process itself should look something like this:
- Define product requirements
- Plan and assign development tasks
- Feature development and testing
- Live release
- Product evolution (repeat 1-4)
Try to look at product development as a cycle instead of a linear process. In this example, the live release doesn’t happen when development is finished, it happens when the MVP functions on a satisfactory level. Your product still needs to evolve through future iterations. Current features will have to be tweaked or scrapped if necessary, new features might have to be added, etc. In some cases, development may continue throughout the entire product life cycle.
Have you heard about the location-based iPhone app called Burbn? It allowed its users to check in at particular locations, plan future check-ins, earn points for hanging out with friends, and post pictures of these meet-ups.
The app wasn’t doing too well after its initial release. After analyzing their users’ activity more closely, the creators found out that people were mostly using Burbn to share photos. They weren’t using the check-in features at all. The app was just too complicated, and came with a lot of features that users found unnecessary.
The team finally decided to act on their data, focus on the photo-sharing feature and throw out everything else. This app is called Instagram today.
This is a good example for why it is essential to involve real users in the development process from the early stages.
Our team places a great emphasis on product evolution as well. Here is what the development cycle usually looks like for us:
Continuous testing is one of the key principles of validated learning, which is used to mitigate the considerable risk of launching a new product. There are over 30,000 new consumer products released each year, and 95% fail, according to Harvard Business School professor Clayton Christensen.
We recommend that, apart from testing software functionality, you should also start usability testing as early as possible. This is important because even a perfectly functioning product can be misinterpreted by users due to confusing layouts, unclear documentation or faulty user interface design.
Normally, software doesn’t get released until it is complete and working just as intended. Although a minimum viable product is intentionally released in an incomplete state, it is still expected to work flawlessly in the hands of users. It basically has to be much lighter than a complete software, but still has to seem just as stable. This requires continuous feature testing in every development phase.
The development team must include testing during and between sprints (iteration periods in continuous Agile software development cycles). Sprint length and frequency usually varies depending on client needs. For some clients we test each development task individually, others only require testing at the end of a sprint. We always use the same platform for this purpose that we use for development as well.
Minimum viable products are beneficial long-term, in part because the high user expectations result in a high-quality product that is thoroughly tested down to the smallest detail.
V. Collecting data and analyzing a hypothesis
The point of minimum viable product development is to collect user feedback, analyze this data and finally act on it through future product iterations. As your prototype becomes stable enough to be put into the hands of real users, you must also have the necessary data collection channels and tools in place.
To identify your key audience and focus on their needs as accurately as possible, you will need to measure their demographic (age, gender, location, etc.) and behavioral data (device usage, interests, preferences and such).
Remember that all data collection practices on your website and applications must be done with consent from the user.
The most widely-used data collection methods are:
1. Third party data collection services already available on the market
There are a number of ready-to-use tools out there such as Google Analytics, Crazy Egg, Hotjar, Optimizely and others, which can help you collect useful behavioral data about your website and apps.
Unfortunately, these tools may have some drawbacks for clients in EU countries. GDPR regulation now limits what types of data can be collected and under what circumstances. This means that you probably won’t be able to use them to their full potential.
You can also gather useful data from the App Store or Play Store if you are planning to release a mobile app.
2. Built-in custom data collection features
With integrated monitoring features you can measure and analyze almost any element of your product at this stage. You can keep track of which software features people are using, where and when they are using them.
We usually recommend to our clients to build a reporting page where they can organize all relevant data and visualize it so it can be presented to the whole team.
Also make sure that your methodologies are in line with GDPR regulation for EU countries.
3. Surveys that ask users for in-depth feedback directly
E-mail and pop-up surveys are still one of the most useful ways to collect information about user satisfaction and recommendations. You can use them to get answers you can’t find by just monitoring behavior.
Be careful not to annoy your users with too many such requests and ruin their user experience though.
Your minimum viable product is ready for launch when all the minimum requirements are fully developed. The product must be of satisfactory quality and without any critical usability errors by this point. You should know whether or not this is true from the results of previous testing.
Product testing and evolution doesn’t stop after the minimum viable product phase either. It is up to your product team now to listen to your customers, find ways to deliver even more value to them and integrate the necessary changes through future development iterations.
Remember, if you get your finger off the pulse of the market, you can quickly lose touch with your customers’ needs and allow competitors to swoop in.
Keep in mind, that developing a flawlessly working app with beautiful design does not automatically make it successful. You also need a strategy to acquire and continuously grow your initial user base. This topic deserves a whole article of its own.
Be sure to remember that a half-completed app with a steadily growing user base is always more valuable than a 100% finished application that nobody uses.
Successful minimum viable product development requires careful planning from the early stages, and close monitoring throughout the development process.
While there can be a lot of money involved later on, getting rich fast must not be the only motivation for minimum viable product development. If your new product truly helps people improve their lives, or the way they work, your chances at success are already much higher.
Be careful not to rush into development with only an idea. Do your best to back it up first through market research and concept testing.
Once you’ve decided that you want to develop an MVP version, stick to this decision throughout the development phases. Pay close attention to how your customers use the product or service, and plan each following evolution stage accordingly.
RabIT software engineering
RabIT is an innovative software engineering company from Hungary. Our goal is to help startups and enterprises drive growth through technology innovation and make a real impact in their industries.
Code quality and transparency are our main priorities throughout each project.