How to build a tech startup MVP in 10 steps

Here comes the culmination of our series of blog posts about building an MVP. Let's go through the main steps involved in building an MVP product for you tech startup. Without any further waffle, let’s jump straight in.

Step 1: Identify the problem you are trying to solve

You may remember from my piece on the founders’ most common mistakes, that identifying your target market and the value you want to deliver to it is crucial. One of the simplest ways to do the latter is to find a problem that needs to be solved. To achieve that you can use one of the many approaches.

Some founders find the problem organically, for instance while working in a selected field and having experience in dealing with a problem that no one has yet decided to tackle, so they decide to resolve the issue themselves. However, it may not be of use to a wider audience. Others might not see any problem at all and if you fail to do proper marketing for your startup, there’s a high chance of failure.

Another way to approach it is to research an industry you’re interested in and identify the issues people are having so that you can present them with your solution. By doing so, you’ll also create opportunities for acquiring early-adopters and even your first big customers, especially if you start testing it with a specific company. Just look at OnSerro, they started working with one of the largest car dealership in Germany early on and then continued to expand their partnership-base once which the idea had been proven to work.  

Step 2: Outline your user journey

Once you’ve picked the problem you’re going to solve, it is time to start going more in-depth. Outlining your user journey should be your next step. But what is the ‘user journey’ Put simply, the user journey is a high-level map that showcases how users move through your application, what they see, when they see it etc.

Source: Optimizely

Usually, this step is done by an experienced UX/UI designer. In our case, we create user journeys, amongst other things, during our Product Design sessions, but you can also do it yourself. Maybe in a bit less detailed way, but still it will give you a general overview on the software you’re aiming to build. There are multiple user journey templates on the internet, so it should be fairly easy to do.

Just don’t forget that some details are more important than others and your end-user should be able to perform core actions in an intuitive manner.

Step 3: Break it down to its core features and prioritize milestones

Time to get technical. Starting from this step, you’ll need to have either your own in-house team or an external software agency to help you navigate through the technicalities of developing a web or mobile application.

Focusing on the core features is the main goal of developing an MVP product in order to avoid over-complicating the solution you’re trying to build as well as to keep to deadlines and stay on budget.

The best way to sort out what’s being developed when is to create a list of user stories (I’ve shown how a user story should look like at the very end of this article, so if you’ve missed it, you can scroll through and familiarize yourself). Once a complete list has been created, it is time to estimate each one of them, highlight the key features and develop a plan for the next 1-3 months, prioritizing only those features that are necessary for the MVP stage. The rest should be put aside.

Once everything is prioritized, divide it into deliverable milestones, and you’re all set.

Step 4: Create and test your clickable wireframe

Jumping straight into coding wouldn’t be the wisest idea without first testing whether our initial assumptions are true. In most cases, we start by creating a clickable wireframe mock-up. It’s the fastest way to create a version of your product that you could play with as if it’s a real app and usually takes about a week, including additional tweaks and iterations.

Source: Alex Dovhyi

The main goal here is to test our user journey and find potential issues before spending a couple of thousands of dollars onto their implementation.

Step 5: Proceed with design

When the general experience has been tested, we are free to start getting colours into the mix, creating the look and feel that the application will have once released.

Usually, during this step not much is happening on the development side aside from a DevOps task, such as setting up dev and testing environments, connecting analytics, debugging tools etc.

Transforming the design into code isn’t a simple task, thus you want to be sure that your app design is final. Otherwise, you’ll waste time and money on rewriting code over and over again. Wait until you’re happy with your designer’s work, and only then hand it off to your development team.

Step 6: Kick-off the development process

Now the juiciest and the longest part of the process — actual development stage. If you’ve estimated and prioritized your features correctly as described above, then there should be no nightmarish surprises along the way, although you can expect some shifts in your initial assumptions due to the nature of software development.

From our experience, it’s best to plan your splints (usually 2-weeks development periods) in such a way that your team is able to deliver smaller working parts of the system rather than tackling huge chunks that won’t show any visible progress for a couple of sprints.

If you do find yourself in such a situation, there’s a good chance that something wasn’t planned properly.

One important thing to remember, especially if you don’t have any development standards implemented in your in-house team yet, is for your developers not to get behind in writing tests for their code. The longer you postpone it, the harder it will be to catch up and the more likely it will be that your app’s quality will suffer.

Step 7: Start testing mid-development

If you follow my advice from the above and develop your app in smaller but operating pieces, after a month-or-so of development, you should have a working version of your product that you can start testing in a closed alpha stage.

We did something like this with bussr, one of our clients, although that was a somewhat extreme case, but after the first sprint we were able to start running the main features with test drivers that used the app to simulate the actual usage by driving around the city. As a result, we were gathering tons of data that was quickly used to optimize the app’s performance as well as user experience.

Step 8: Release an MVP and start gathering feedback

As you get closer and closer to the release date, you can consider doing a soft launch. It’s an approach some companies use to test how the end product will behave in its ‘natural habitat’, but in a somewhat controlled environment. It usually means rolling out your app to a limited audience with a zero to low marketing budget.

The main purpose it to catch any major bugs that could ruin your hard launch and fix them before proceeding.

Screenshot of a random newly-released app on Google Play

Once you’ve tested for any critical issues that may have occurred, you can release your MVP to the broader market and start gathering feedback as well as analysing the data that is being collected.

Step 9: Plan next stage of development

Hopefully you had a successful launch and now it’s time to think about moving forward with the development. To do so, it’s best to take the data you’ve gathered and bring up the initial plan you created during the first steps of developing an MVP.

It wouldn’t be wise to stick to it without considering where you are right now with your MVP. Some assumptions might have changed, and you may need to focus more on a specific parts of the application that you either planned for a later stage in the process or didn’t even consider at all. Everything should be based on the acquired data, of course.

Once the plan has been updated...

Step 10: Iterate

It is time to loop back and start everything from the beginning. Plan — developer — iterate.

Epilogue

Starting with an MVP is an amazing strategy for developing a new product. It allows you to test your solution as well as change it in a relatively agile way, saving you from wasting an extensive amount of resources.

Although, as with many things in life, it does require a great deal of research and planning. Whether you decided to do it yourself or in a partnership with an external company is up to you, just make sure that you’re not missing anything crucial for the successful launch of your app during the development process.