Feb 28, 2011

How to Avoid a Disaster When Outsourcing to an Overseas Web Developer

Back in June 2010, over a couple of beers and free appetizers at a downtown Chicago happy hour, my co-worker Ben and I were talking about cool ideas for apps and websites. We talked about this topic a lot because we both work in online marketing and get to see new businesses popping up everyday. After a few of these happy hours, we brainstormed the concept for localpinch.com. The idea  was (and still is) simple – allow local small business to use our website to create and sell gift certificates for their services. We had the idea for the site and were really excited to create it and bring it to market. But we had one kind of serious problem in front of us… neither Ben nor I knew how to build such a thing.

Getting your idea developed into an actual app or website can be a daunting task. Lots of questions pop up like “Do we really want to go forward this? How much is it going to cost? Who is actually going code this thing for us?”

Now I should let you know that I have some history with producing online projects. Before Locapinch, I outsourced two projects using developers in India. One was an iPhone app for mobile coupons which unfortunately was not a success (in 2008 it was a little premature). I also worked with another developer on a site called KatesCoupons which I marketed for sometime using affiliate networks and sold. With both of these projects I felt like I got pretty much what I wanted from the developer.  So taking this experience I convinced Ben that using an overseas developer was our solution. The main reason this was our only option was (and still is) the cost.

Regarding cost, if your idea is at all dynamic in nature (has inputs and outputs involving a database) and has a certain level of complexity to it (includes javascript, forms, is searchable, etc), it can easily cost five figures to just get started woking with a local developer. This is why many entrepreneurs will go to sites like elance or oDesk to hire a developer overseas. The rates per hour using overseas developers can be around $10-$20 per hour compared to $40-50+ in the States. And you can get quality work from overseas developers. You really can be happy with the outcome and not pay as much, but this is only if you really know what you are doing.

So this brings me to Tip #1, if you are completely new to web design and development and your idea has a level of complexity (interactivity, database-driven,  connecting people, sessions, logins and logouts, ecommerce, etc) I would say these are your options:

  1. Work with someone local. For a complete newbie a personal meeting and native English speaker are necessary. Also having someone that you can call on the phone or meet in person is invaluable. If you can afford it, staying local is always the best option. We would have much preferred this option if we could afford it. Even for entrepreneurs with lots of web experience a good local developer really is the best option.
  2. If you are a complete newbie spend a few months teaching yourself about building websites before hiring someone overseas. Having a good understanding of databases, scripting languages like PHP, development in HTML and Javascript are very important when producing a website. You can research copious amounts of online tutorials on these subjects or possibly just try to create a simple website on your own to learn more about web development.
  3. You can drop the idea or wait on it until you have more experience or money. If you  do not have the money to hire someone local and you do not have enough experience to hire a less expensive overseas developer you might want to hold off on investing in the idea. To be successful working with an less expensive overseas developer you really need to have a pretty good idea of what you are doing. Because the key to avoiding a disaster with outsourced developers is being 100% detailed (I will explain what I mean about 100% detailed and disaster later).

Tip #2, from my experience, if you are not a developer, don’t pretend like you are one and try to build the site yourself. Unless you are a genius AND have a God-given ability for this sort of thing AND have tons of time on your hands, it’s probably going to take several months to get a dynamic database-driven site/app/FB page created the way you really like. And 9 times out of 10 you are going to give up (take it from me I have tried to program a few sites in my day and they are now all languishing in a data junk yard somewhere never to be looked at again). If you are a business person and have that super awesome idea and want it to be done well and sort of quickly, just hire a good web developer.

So here comes Our Disaster Story and the main point in this article. When starting Localpinch, after a good amount of research and interviewing several firms from around the world with acceptable looking portfolios, good reviews, and agreeable rates, we hired a firm out of India.  We spent a lot of time filling out a form that they sent us about what the site is supposed to do, what it is supposed to look like (colors, etc) and answered several questions with the developer (his name was Raymond).

Raymond was very attentive, polite, and a good English speaker. His team (I found out later that Raymond was actually the Project Manager for our job and not the actual developer) worked really quickly and produced results faster than we actually thought he would. He sent over first, second, third milestones and we were pretty satisfied with what we were seeing with just a few changes. But then came his initial COMPLETE milestone and we started really testing the site. We used the site and there were several places where links did not work, tools on the site did not make sense or did not work, and the user interface was very hard to use. We ended up having a 50-60 item list of revisions and a serious knot in our stomachs. So he went back and made most of these revisions. But again we tested the site and several parts of the site did not work. So we sent him another list of changes. After another week we tested his revisions and there were several errors still and the site was still not what we wanted.

At this point of the project we had passed a few milestones (which are created in Elance) and paid out about 1/2 our budget but we knew in our guts the site Raymond created was a disaster. At that point we had a tough conversation and decided to cut our losses and dropped the project with Raymond’s team and scrapped this version of the project. Raymond was of course upset, and we were upset and out a substantial amount of cash.

Looking back at this disaster story – I think it was partially the developer’s fault but probably mostly our fault. We were not specific enough and we did not really know what we were doing when we contracted him. So here is Tip #3 which is probably the most important BE 100% DETAILED and 100% SPECIFIC when hiring an overseas developer. You cannot leave a single link, drop down, page design, form, or piece of copy on your project up to interpretation. The entire project needs to be spelled out to the exact detail or you are going to have changes and revisions which will cost more money and may never be completed. Be 100% detailed upfront and you will be much happier with your results. So the second time around, we hired another developer (actually the one we used for my iphone app) and gave the developer 100% specific instructions and we really did get what we wanted. Our site is working and we are in business.

Here is a list of tips to avoid a disaster before hiring an overseas developer:

- Very important, if you have no experience with web development or design refer to Tip #1 and get some or don’t hire an overseas developer.

- You need to spend A LOT of time creating a wireframe which tells the developer exactly what you want. Each piece of the site needs to be explained. Do not leave ANYTHING open to interpretation. Wireframes can be created in many different ways but I would say the main point of a wireframe is to be 100% specific of everything that you need. And present it to the developer in an easy to interpret way that can be referred to later if the final product does not match what you asked for in the wireframe.

- Agree on a certain number of revisions before paying them a dime and agree on a specific amount of time to make those revisions. Remember you are dealing with a person over in India who has other clients, holidays, wants to go to happy hour with his buddies, etc. So be incredibly specific with your timeline for working with him. And throughout the process refer back to what you agreed on.

- I would highly suggest researching frameworks that are already out there (Drupal, Wordress, OScommerce, there are tons of them)  and avoid having a developer make something “from scratch”. Our story with Raymond was “from scratch” and we needed to drop the whole plan. You can find tons of existing and free or cheap scripts  out there in places like Hotscripts that probably already do 80% of your idea and a developer can just add a module or alter it to make it do exactly what you want. If the developer insists on not using an existing script/framework ask for examples and ask in forums if other developers think this is a good idea.

- Request that the developer take copious notes within the code they are writing. It is really useful later on when reviewing the script to see where the developer you hired made additions. It is also really good for the future when another developer might take over your project.

- Ask the developer to use Cascading Style Sheets (CSS) for most if not all styles, classes, etc. on the site. If you are going to alter anything after they are done (and you probably will want to because developers are typically not the best designers) an organized CSS makes it much easier. If you are not familiar with CSS you should really familiarize yourself with it. Its the best way for newbies to tweak their designs because CSS affects all the assets on all of your pages rather than changing the style of something on a single page. And CSS, to me, is one of the easiest design concepts to learn.

- Ask the developer what experience they have with making sites search engine friendly and read up on search engine optimization. Changing around URLs, page, dynamic keyword insertion, and category level SEO after your project is built can be a huge extra expense so you want to take care of that upfront. Search Engine Optimization is one of the main marketing channels of many online companies.

- Make sure the developer installs Google Analytics. Google Analytics can be installed on most apps and websites. And if you do not already have one, sign up for a Google Analytics account. This will allow you to see who is linking to you, what pages are getting used, what pages are making people leave, how much traffic you are getting, as well as a lot more.

- Don’t be proud and try to dream up every page. Research ideas comparable to yours and copy some of the concepts and designs that established sites are already using. Developers easily understand things that have already been created and are being used already. In your wireframe don’t just say “We want our site to be just like Facebook, but only for Mormons, for example.” Instead, take lots of screen shots and say “this page on our site should be like this page on such and such site with these changes.” When we sent the wireframe to India for the current version of Localpinch.com we had several screen shots of other site pages that we liked. And these turned out to be some of the best pages on our site. You can take screen shots and alter them using Photoshop, Powerpoint, or a free tool I really like pixlr.com. Giving a developer a picture of exactly  what you want is a very effective way to communicate.

In this article I included all of the tips that I could think of from our project. If you have your own stories or things to be mindful of when hiring an overseas web developer please comment.

Like it? Please Share!

2 Comments

  • When is it worth it to hire programmers overseas? What are resources to find them?…

    I have used odesk and Elance several times and think that I have had my fair share of being burned vs. getting exactly what I wanted. Here are my tips: 1. After you follow Owen’s steps (above) and you have found the developer make sure that you set up…

  • What are some scary startup stories?…

    I hired a developer in India and got hosed. It was partially my fault and partially his. We wrote up what we wanted, submitted it to Elance, got a bunch of bids and found one guy that looked like he had an acceptable portfolio. So to start the project …

Leave a comment