Minimum Viable Product

What should be demanded of a development house when asking them to build a first prototype?

Alison Skwarek Innovative | Performance Driven | With a broad education

June 21st, 2016

I am considering having a development house build me a first MVP based on my market research so far. It will not be anything crazy, I want to start small. What do I make sure I demand of them so I can make sure I am getting the most out of my time and money? 
You have an idea. Now it’s time to turn it into a brilliant and beautiful product. In this course, you’ll learn specialized tactics to study your user, create testable wireframes, and transform them into fully functioning features and products.

Anthony Zeoli Digital Strategy and WordPress Consultant and Trainer

June 21st, 2016

Alison,

As a vendor, I have worked with a number of startups on their MVPs. What I have found lacking from almost every client without experience are two very specific things. I put this question back on you to provide your development house with the following:

1. A comprehensive business requirements document, including user stories that defines every possible pathway a user could take in the product - from entrance to exit. If you don't know from your market research how the user is going to interact with your product, you're going to spend an inordinate amount of time with your development house, who will build what you want, but ultimately you have to extremely confident in the product architecture.

2. Basic information architecture documentation that defines the login/logout path for the intended audience to enter and exit your site, desktop, or mobile application. This doesn't just include click this and go here and you're done. This includes all the possible errors one might encounter when navigating your software product. You must define success and you must define errors and what happens when a user gets to success or gets blocked from completing the story that you defined in the business requirements document.

What you really need is to hire someone to help you "architect" your product first. That would be a product manager or a CTO, but more like a product manager. A CTO is going to define the technology stack you're going to build on and how you're going to support the technology you build in the short and long term. The product manager is going to help you write your business requirements and possibly do basic wireframing of all site pages with a site map to hand off to the development shop.

If you don't have this upfront and rely on your development shop to not only build your product, but architect it as well, you're going to want to see examples of past work - formal business requirements documentation and information architecture documentation that explicitly spells out exactly what you're going to build, so there is no confusion.

Without this basic information in hand in the beginning, you are going to go through round after round of trying to get it right. You don't have time or budget allocated for that, so you have to be extremely detailed in your documentation prior to engaging with the development house. Then, you can bring that documentation to them and they can give you a better sense of what's possible.

If you don't know how to do this, then you're going to have to learn and learn quickly, because you don't want to burn money in the confusion that ensues from not having a plan.

David Albert Founder & Principal at GreyGoo

June 21st, 2016

I agree with Anthony. Seek a development shop who specializes in concept to launch--not just a firm who can take in requirements and build what you ask. If you've done market research and idea validation you'll need a firm who can:
1. Help you write requirements
2. Create User Stories (essentially what are the scenarios in which a user will interact with the app and how)
3. Create user flows (visual diagrams of the user stories)
4. Wireframes (basic low-fidelity visual representations of the user interface of your app and its various view states)
5. Design a UI and create a simulated prototype of your app before it goes into formal coding.

By planning this way, you're going to emerge with a complete blueprint for your MVP so the path to development and launch is clear.

Mark Tomizawa NowCivic | @Dares2Care.com | Join my drive to skills 99 and followMe 2 YOUR great

June 21st, 2016

Coding is like making sausage. Keep the community of users involved. Here's a way to do it anytime at any stage. Paper test it how well the Decision User Interface makes it easy for the users. Play the role of Computer. Each index card is one decision/action on a flow chart. Prototype for clarity. Watch for hestitations and uncertainty. Try this with a variety of people.

David Albert Founder & Principal at GreyGoo

June 21st, 2016

Oh and I should add--you'll get varying opinions as to how extensive and complex each of these deliverables should be. I've seen firms create very verbose user stories and flows for apps that are quite simple (read: unnecessary). Find a firm where you're comfortable with the amount of planning they propose based around your goals and the vision for your MVP.

Ib Olsen Energy Storage, CleanTech, and Sustainability

June 21st, 2016

I agree with David based on my own experience. If you do not hire a product manager that can 'translate' your requirements into code requirement, you will have to interview and find the development shop that can do it with you. I would also recommend to read up a little on wireframes and maybe sketch some pages out in Balsamic (you can get it for Chrome) as a visual usually make it easier to discuss functionality.

Jay Kelly Co Founder at Locked In Sports & COO at 9Tribe

June 22nd, 2016

Great comments from everyone on your question, Alison. I would add that you should give preference to a dev group who will push back on what they consider unnecessary complexity.

First time app builders often include too much functionality too soon instead of letting market feedback drive additional features.

When a dev group encourages you to simplify, that typically means they're making less on the project. If they're willing to do that, that's a strong signal they have your best interests in mind.

James Hardy Director at Live Fit

June 22nd, 2016

From recent first hand experience of being in your position (first ever app build, prototype) and having the project run away from me slightly I would say you need to think about what you demand of yourself as much as your development house. 

All the above comments are very true;
- if you don't have experience find a product manager
- run through your user stories twice as much as you think necessary
- distill what you want down to very clear objectives (tech spec but with wiggle room for lateral thinking)
- book in update calls with your dev team, you will need to stay in touch

Don't skip this, even if you have other pressing issues. You will spend money you don't have on something you don't want. If your company is tech heavy, what could be more important right now..

Measure twice, cut once. 
Good luck
James

Aidan Yeaw VP of Product at SaveDay

June 24th, 2016

Lots of great comments here.  I would also suggest you make sure that the code base is checked into a place you can access and control (like GitHub) as the work progresses and you make payments for it.  Certainly, make this clear for final delivery.  You should also make sure you have the Intellectual Property (IP) rights and not them if that's what you expect. Best of Luck!  

Shaw Walters Chief Executive Officer at Palm Laboratories, Inc.

June 26th, 2016

Two biggest mistakes I notice inexperienced people making when working with programmers: letting them do too much work on their own based on written directions and not reviewing code, especially for readability.

1. Hire someone you can work with in the same room. The more time you spend next to your programmers, the more closely the product will be aligned to your vision. If your time is limited, spend time outlining the entire thing and make sure they are on the same page. If you have more time to spend in the same room, let them do their thing and check in and ask questions as it seems appropriate. 

Lots of programmers like to do their own thing, on their own time. I get it, I even push for it on my own projects much of the time- but there is a lot more accountability and understanding of what it takes to get something done when you're there.

2. Make sure you have all project files, notes on how to build or rebuild from where they left off and, most importantly, make sure the code is commented and that their variable names and whatnot make sense.

Every variable, function, flow control statement (if/then/else, switch, etc), loop, etc should have a comment about what it is and what it does.

For example:

static int nUOS;

says absolutely nothing.

//Number of users on the server right now
static int nUsersOnServer;

Tells you exactly what that variable is and what it's for, even if you have no coding experience.

This also keeps your coders accountable for writing good, clean code, which will save you a lot of time in the long-run.

Randall Shane, PhD Data Scientist & Developer

June 22nd, 2016

MVP is highly dependent on architecture.  If you'd like to speak, drop me a line - my thoughts are free.  Very exciting!!