How long until my prototype is ready?

This post is part of the Nontechnical Founders Series – a set of posts aimed at helping would be nontechnical startup founders get answers to their questions around the technology side of starting a company.

In previous posts I’ve written about collecting the right resources in order to launch an internet product. I covered skills your technical co-founder or contractor need to possess and what technologies they should be comfortable with in order to move quickly and create a solid foundation from which to grow your company. The next logical question is, “How long will it take the team to build the product?”


As with everything, the answer is that it depends on what type of product you’re creating. Let’s assume that you’re building the usual data driven web application, and that there’s not any core deep technical IP requiring unending research. Let’s also assume that the product is being built by one core developer (either your technical co-founder or your hired contractor) with rough competency in all areas of the development stack, and a contract designer. 

The short answer is that you should push for your product development to move quickly. It’s no secret that I’m a big fan of releasing early and often, and as such, it’s not necessarily important that the “release” version of your product contain every single feature which you’ve been dreaming about for months. As soon as the developers have a product that does anything, they should push it live so that early users can begin poking at it. How long should this take in the case of the basic web app? Probably about a week for an undesigned version, and probably about 2-3 weeks for a designed version. To give you an idea of the scope of what you can expect in this timeframe, let’s take the following example:

You’re building a facebook clone. In just a couple of weeks users should be able to sign up, create a simple profile with a profile photo, and add and remove friends. On one hand that doesn’t sound like a facebook clone at all (no photo albums, tagging, chat, applications, etc), but on the other hand think about the basic functionality and what’s been accomplished in just a couple weeks. After this base is in, it’s easy to add features one by one every couple of days. But if you never released this basic functionality after week one, you wouldn’t have any early users (even if it’s just your team, friends, and family), and you wouldn’t be getting any feedback about how to best move forward. 

Okay, so a couple of weeks to launch a simple prototype that does something but nothing interesting. In the case of the facebook clone, maybe you’d like to get to the point where people can write on one another’s walls, create albums, and tag their friends? At that point you’d feel comfortable “launching” to the world.  How long does it usually take to iterate to an interesting point? 

It shouldn’t take longer than 3 months. I arrive at this rather rough estimate by looking at the startup accelerators as good examples. Programs like YCombinator, TechStars, and DreamIt generally run for about 10-12 weeks, and at the end of the program most teams have an interesting product to pitch to the media and investors. If these programs have learned through years of experience that most consumer web applications can be built and demoed in under 3 months when the founders buckle down and get to work, then this is what you should shoot for yourself if you’re launching a similar product. If you are using an agency instead of an in-house team, expect development time to be 2-3 times longer. This is due to the overhead of communication, going back and forth with changes over the span of weeks instead of hours, and the inevitable second guessing that occurs when you have one party thinking and the other party blindly responding.

If you want to move fast, then I would like to emphasize one key lesson I’ve learned: release your product as soon as possible. Immediately. Don’t even wait for it to work fully. When you keep your product behind closed doors, it tends to fester. You spend days or weeks debating key feature decisions with your team, and you use unfinished features as an excuse to delay launch. Compare this to a simple product that is out in the open being used by actual customers. If you feel embarassed that they’re not experiencing the complete product in all it’s glory, then you’ll race to enhance the product every single day. You’ll know what the most pressing need is, and you’ll get it implemented quickly to create a better experience for your users. Your product will grown organically instead of in a contrived way, and you’ll know very quickly what’s important and what’s unimportant.

Good luck, and get to work.