How to efficiently build an MVP for your tech startup

It's surprising how often I meet entrepreneurs and start-ups who have been building their tech startup for more than a year (sometimes up to 2 and half years) and they haven't launched yet. When working on a startup you often want to make sure it's perfect before you launch so you can show your customers how amazing your product is. But what happens if they don't like what you have built? How can you not waste years building a product that your customers might not even want?

Words like 'Lean Engineering', 'MVP' & 'Agile development' have become mainstream within the tech startup industry in the last few years. Without getting too technical (but following these practices) here are some tips to stay on track, stay focused and get your MVP out to your customers FAST (within 2-3 months)!

What is an MVP?

MVP stands for "Minimal Viable Product". It refers to what is the simplest product you can design, build & release to your customers with minimum time and cost investment. Think about what will give you the best ROI or validation that what your building is what your customers "actually" want?

MVP is sometimes also referred to as a 'Minimum Feature Set' by some people. Be careful though, an MVP is not a broken featureless site, it is a carefully constructed 'prototype' that is a subset of your large product goal that you can build and release very quickly to "validate" your idea. The image below demonstrates really well how the MVP process should work.


Your goal

Your goal is to build the smallest, useable subset of your product that can be used to test against your 'real customers' to determine if you are building a product they 'actually' want to use (and more importantly, pay for!).

What you want to DO (to deliver fast)

  • Scope and define your MVP requirements (what features are required to launch your MVP)?
  • Stick to your requirements.
  • Define & manage your priorities (on a day-to-day basis with your team).
  • Create 2 TODO/backlog lists:
    • "List 1" is your MVP TODO list (these are must have features for launch).
    • "List 2" is your "After MVP" launch TODO list (these are all the cool features you come up with that aren't critical for launch and can be done after your MVP is released).
  • Define your timeframe.
    • 2-3 months is your ideal timeframe to complete design, development, testing & release.
    • Try to really stick to a 3 month maximum timeframe for your MVP.
  • Collaborate together as much as possible (share an office space).
    • If you collaborate together you will get more done together.
  • Have morning standup meetings.
    • Standup meetings are part of 'Agile project management' and are quick informal catchups where everyone defines what they did yesterday and what they are doing today. They are around 5-10 minutes, everybody must standup, and it usually occurs at the start of the day.
  • Always have a TODO list every day about what you and your team are going to get done
    • Have stop limits that will stop you spending too much time on unimportant tasks.
  • Stick to your requirements.
  • Don't add new features unless they really block your initial MVP launch.
  • If you really need to add a new feature (or someone in the team is pushing for a new feature):
    1. Ask your team, is this feature mission critical for launch?
      • If YES, take out another feature that is less important.
      • If NO, put it in the technical backlog for after launch.
  • Don't rewrite your MVP on new technology stacks unless you physically cannot launch your MVP without doing so.
  • Be doers, not talkers/strategists. Building an MVP requires you to get your hands dirty.
  • Stick to your requirements.
    • I cannot stress this one enough.
    • This is the number 1 reason every single startup I have consulted to has struggled to launch their MVP in a timely manner.

What you DON'T want to do (stop getting distracted)

  • Don't keep adding more features to build into your MVP - Keep It Simple.
  • Don't go and build the world (eg: your entire product - focus on the prototype).
  • Don't go and hire a team of 30 developers overseas and think it will get built faster (unless you have a team of 3-4 technical project managers to manage them).
    • Normally finding 1 or 2 developers in your local country will get the job done faster and better.
  • Don't change priorities every day (changing priorities constantly wastes development time and reduces your team efficiencies).

Checklist to get your MVP out FAST!

Based on the startups I have been involved in, below is a check-list of all the things you should consider while planning & building your MVP and then releasing your MVP to your customers. There are approximate time estimates against some tasks to provide you a basic guideline.

Planning & Setup

  • Complete a learn canvas before anything else (~3 hours)
    • This planning tool helps you determine if you have a product worth investing time in.
    • Pollenizer have a great example on their tools page.
  • Determine the team you will need (at a minimum you will most likely require)
    • 1 designer
    • 1 developer (full stack)
    • 1 marketer / salesperson
  • Determine the roles you will need within your team (people can own multiple roles)
    • Design
    • Development
    • Dev ops (servers/web hosting)
    • Product owner
    • QA/Testing
    • Marketing
    • User acquisition
    • Project management
    • Company evangelist
    • "The glue" (the person that brings everything and everyone together).
  • Recruit or source your team (if you haven't got them already).
  • Find an office space (co-working space is a good start) (~1 day).
  • Decide on a company name (that also has a domain name available) (~1 day).
  • Define a long term vision/strategy for your startup - just a sentence or 2 (~2 hours).
    • Print this out and put it on the wall/door, wherever everyone will see it.
  • Define your MVP goal - what you want to achieve for MVP launch (~2 hours).
    • Print this out and put it on the wall/door, wherever everyone will see it.
    • This will keep your team constantly focused on the end goal.
  • Setup google apps/email for all your team (~4 hours).
    • Create a generic email (eg: team@yourcompany.com) that you will use for all your subscriptions, billing etc.. don't use personal accounts (it makes it complicated when people move on in the future).
  • Setup a task tracking or project management tool (~4 hours).
    • Asana is free and simple collaborative tool.
    • If you are after something more enterprise, check out JIRA from Atlassian.
  • Similar to above, setup a collaboration tool (Google Docs or Confluence) for documentation so you don't loose any documentation throughout your early startup stages.
  • Setup an Agile Standup Board 
    • Backlog, TODO, In process, In Testing, Done
  • Don't build the world
    • Find and define that one feature that makes you different from your competition and focus on that.
    • If you're a dating site, what makes you different? Build that feature only.
    • If you're a social network, what gives you an edge to acquire users? Build that feature only.
    • If you're an ecommerce site, what will make your customers purchase off you instead of your competitors?
  • Fake features you are not sure about or cannot build in time:
    • eg: Need "identification checks' on your website?
      • It may take 3-5 days to implement with an API to provide this automatically.
      • For an MVP maybe it's a file upload tool and your team manually does ID checks in the beginning (this may only take a few hours to build). This doesn't scale but remember you're building a prototype.

Design & Development

  • Develop your wireframes for your website/app (~2 days).
  • Define your company brand and colours (~1 day).
  • Develop a company logo (~1 day)
  • Develop your designs and user experience flows for your website/app (~3 days).
  • Research & choose your technology stack and framework (~1 day).
  • Purchase your domain name.
  • Purchase and setup your website/app hosting.
    • AWS provides a great infrastructure to do this and allows you to scale up as required with little effort (provided you architect you're application correctly).
  • Purchase and setup your DNS hosting
  • Define and scope your MVP development build list (~2 days).
  • Prioritise your development tasks in order of what needs to be accomplished first
    • This is a collaboration between your software engineers and your product owner.
    • Break your scope into user stories and tasks.
  • Setup a private GitHub or private BitBucket account for version control.
    • If your developer doesn't know what version control is, find a new developer.
  • Build your MVP (~25 days).
    • Break this into 2 parts.
      • Part 1 = Build the foundation that can be deployed to your test servers and be used as a feedback/review channel for the rest of your team (~15 days).
      • Part 2 = Iterate and build on top of this foundation (from feedback from team) to complete your MVP (~10 days).
  • Ensure your development, testing & production environments are setup (~3 days).
    • Ensure they are all identical.
  • Setup automated deployment (continuous delivery).
  • Setup Google Analytics or another analytics platform
    • Do not launch without this.

Marketing & Acquisition

  • Prepare your marketing plan from day one (~2 days)!
  • Define who your customer is (~1 day).
    • If you don't know who your customer is, figure it out before you building your MVP.
  • Define your customer acquisition strategy (~2 days)
    • How are you going to build your database of customers.
    • Customers are very unlikely to just 'come' to your website - you need a strategy.
  • Talk to everyone about your startup while you are building it.
    • Don't go stealth, don't lock yourself away and think everyone will love it when you launch
      • THIS doesn't happen!
    • Go to meetups, meet people & get feedback from early adopters.
  • Allocate your time into sections.
    • A rough allocation could be:
      • 10% general business setup.
      • 10% wireframes/designs/logos.
      • 5% content creation.
      • 40% software development.
      • 10% QA & testing.
      • 25% marketing / reporting.
  • Setup your social media accounts (~1 day).
  • Setup a landing page to gather signups & social media followers (~2 day).
  • Setup a MailChimp account as a base platform for your subscribers (~4 hours).
    • MailChimp is super easy to use and it's easy to export your subscribers at a later date if you want to migrate to a different platform.
  • Create/practice your elevator pitch (~1 day and then ongoing).
    • Know how to pitch your startup to everyone you meet (but not in an annoying way).
  • Develop marketing strategy plan for launch (~2 days).
    • What newsletters are you going to send?
    • What SEM will you implement?
    • What is your marketing budget?
    • What is your social activity for launch?
    • What giveaways/competitions will you run?
    • What press publications are going out for launch?
  • Setup a customer support tool to install on your website/app.
    • ZenDesk is a great, really cheap tool.
  • Select 10 potential customers for your product that you can use for early feedback (~1 day).
  • Get out there and talk to your customers about your MVP and get feedback to determine if it is worth investing more time and money into your startup idea.

Testing

  • Build a test plan for your MVP (~3 days).
    • This can be a manual test plan in the beginning if you don't have time to build and setup automated testing.
  • Test your MVP on testing servers when it is at a stable stage (~2 days).
  • Do a spell check on your website before launch (~1 day).
  • Release your MVP to production (and do a soft launch) (~2 days).
    • A soft launch is a launch that you invite friends and family to before you release to the public (usually 2-3 days later).

Culture

  • Work hard, if you are serious about your startup, put in a solid 14-16 hours a day in the beginning to get your MVP up and running.
  • Have breaks or dedicate a day off to not think about your startup.
  • Go out to team lunches/drinks at least once a week.

Remember...

Your MVP does not need to be perfect, this is version 1 - "a prototype". This is to test if your customer wants your product so you can justify continuing your startup and not wasting away your life on a product that no one wants.

Suggestions / Feedback?

Have something I have missed that you do when building a startup? Make a comment below and I'll add it to the post :-)