Jnassiri's Blog

Developing a website prototype through outsourced teams

Posted in Action Oriented Startup, Efficiency by jnassiri on March 1, 2010

I get a lot of questions about how I developed my first website, so I thought I’d take a few minutes and throw up my rough thoughts. Basically, I built my first two websites through outsourced developers for an extremely small amount of money, and then fundraised after getting some users on these sites.

The advantages of the route I went was:

  1. It allowed me to gain real user feedback on a real, working product. For what I was doing, this was the next step in my rapid prototyping process, and a tangible website was necessary to get more detailed feedback. The lessons I learned from this also lead to the direction the company is currently headed, which is quite different than the initial website.
  2. It was a big boost of credibility when presenting to investors. I believe it showed (1) that I was capable of managing a group of engineers, (2) I was able to transform an idea into product specifications into a working website, (3) that I was able to do this on an extremely constrained budget. My favorite quote from fundraising was one investors’ comment that, “Justin, I’ve given entrepreneurs $100k to get to the point you’re at right now.” – that provided more insight into how I operate than anything else.

There’s a lot of downsides to using outsourced labor (lack of team for investment purposes, no emotional investment from your developers, no feedback from working in a collaborative environment), but for me these were definitely offset by allowing me to focus on immediate execution (rather than recruiting).

The rest of this post will be about my recommendations about how to go this route – I’ll leave it to you to decide if that’s the best option for where you’re at. I have a lot of thoughts on scalability and long term sustainability, but for what I did this worked. There’s also a wide range of outsourced developers, and my post will be geared towards the entrepreneur that wants a decent product for an extremely small amount of money (ie. Scalability is not a major concern – you’re planning on reinventing the wheel down the road).

Product Specifications:

This is by far the most important part of the process. Most of the outsourcers I’ve worked with (the majority being in India) are great at development, but will perform exactly to your specifications. This is also important since this route is cheaper if you work on a project basis, and for that you’ll need finalized specs that you and the developers agree on. Lastly, during this process you’ll really need to think through the details of how you want your product to work – a lot of issues come out of this process, and when a plan is on paper it reveals a lot of holes that may have existed in your mental image.

I started with an idea, that I transitioned to a whiteboard, that I then built out on PowerPoint. I augmented the PowerPoint design with a 5 pages of Word Document RFP that explained the basic intent of the website. This was ok, but lead to a lot of problems down the road. In hindsight I’d recommend doing something much more detailed.

Specifically, get a decent wireframe program. I used Axure, which has a free trial period. You should be able to complete your specs within that window, and avoid purchasing the program. What Axure (or the other products like it) allows you to do is actually layout how you want the website to function. At the very least, this automatically translates to a Word document that explains every detail of your website. At best, you can generate the basic wireframe for the website, which will save your developers at least some time.

Your goal here should be at least to know how many unique pages you need, and how the website functionality will work. If you really have time, you could go into applying an actual design to the layout (see my post on Crowdsourced design), and then give your developers  pretty comprehensive specifications. If you’re in a rush, though, you can parallel process the design aspect while they’re building the basic website.

One other random thought: I really like Axure’s ability to generate a prototype off of your specs. If I were to go back, I’d use this prototype in every meeting I had to show my thoughts on the product. Who knows, that could actually be just as compelling as the actual website. I do think that the feedback I got from real users was pretty priceless, though.

Finding a Developer:

If you’re going to go this route, I’d recommend using a third party system like www.RentaCoder.com. Just as recommended in my thoughts on Crowdsourcing design work, I’d recommend looking at a few similar projects to see how people explain their ideas. You can use that as a sanity check of your own specs.

After that, the process is pretty simple. You throw your project up, and people bid on it. The three metrics I was most interested in learning were price, time estimates, and rating of coder. A few specific thoughts on RentaCoder:

  • Eliminate any programmer that hasn’t done at least three projects
  • Depending on how many bids you actually get, you should probably eliminate any programmer with less than an 8.0 rating.
  • Push each person that responds to give you price and time estimates
  • One of the main advantages here is that you can very quickly (2-3 days) get a pretty realistic feel for how much your project should cost. A lot of people ask me how much they think their website will cost, and it’s a pretty pointless question unless you’re constructing a video website. This process doesn’t take that long and you’ll get a feel for how much most people think your specific project should cost. The range here is pretty wide though – I’ve had $500 – $15,000 ranges on projects I’ve done, but there’s still a lot of consistency in that range.
  • Once you get a week’s worth of bids, it’s worth reaching out to your top 5 choices. Check out what people have written about them in reviews (especially the negative) to get a feel for if they complete a project well and on time. Also ask them for examples of similar websites they have done.
  • You should also speak with them on the phone – you’re going to be communicating a lot with them, so it’s good to make sure they really understand your idea and that you’re able to communicate with them easily. My team and I would speak about 3 (sometimes 5) times a week on the phone for the months I worked with them…communication here is going to be key.
  • Negotiation is possible – most of my final picks dropped their price when I mentioned I was going with someone else. The good ones won’t drop too much, since their first estimate will be pretty accurate.

Once you’ve found your developer, most of the risk is taken out of this. Your payment goes into escrow, and they only release it if you’re 100% satisfied.

Working with your Developer:

Although there will probably be minor changes to your design, if you’ve done the first step correctly you should not have to change much. I found the easiest way to work with my team was to use screenshots and powerpoint. This will depend on the time zone you’re working with, but by the end of each day (the beginning of my team’s day) I’d take screen shots of each of the pages they’d completed. I’d paste that in PowerPoint, and then mark up every single change I wanted. That made for faster communication than trying to explain what was wrong. Phone conversations can clarify this pretty quickly too.

You can use Odesk to track their work if you want – it gives you really detailed screenshots so you can see what they’re working on all the time. Not really necessary, since you should be getting project reports regularly, but it was nice to get a sense for where they’re at.

To be honest, looking back there would have been a lot of advantages to having a team in place before doing all of this, but it worked out well for me and there were a lot of things that had this work better for my individual situation. Those are the main points that come to mind right now, so hope that helps!