A few things I’ve learned about outsourcing to India

As some of you may know, last fall I began the process of
building trekdek. Now, since I have no web development/programming
skills, the process of building trekdek started with a visit to
elance.com , a site where you can outsource all manners of projects
you can’t or don’t want to do. Here are some of the steps I took
and some lessons learned.

1. Post the details of your project on elance.

This was a fun and interesting step for me. I posted the
job with some vague details about what I wanted. I think I titled
it “Travel themed social-networking site.” I had many developers
place bids on the job. I eliminated the ones who immediately asked
for a list of features and gave me a quick price quote. It seemed
as if they were in for quick cash and wanted to meet the minimum
requirements only. It is at this stage of your project that you
will meet the “Sales guy/guy who types the best English at the
company.” This guy will not be your primary point of contact after
you award the project to his company. However, he is useful for the
purpose of clarifying the actual features of your project. My sales
guy Samit even gave me some ideas for more features on the site and
a mockup. Cool.

2. Negotiations

Once you find the sales guy you
enjoy talking to most, you can start negotiating price and
deadlines for the project. The former is easiest to negotiate. I
had no idea how much something like this would cost, but after
receiving multiple bids from several companies, you kind of get a
feel for what the cost should be. Don’t make the first offer. Samit
started with an offer of $5500 for the whole project. We eventually
got it down to $3800. The other aspect of the negotiations includes
the type and number of features you want and the various deadline
milestones that should be reached. Your sales guy should send you a
relatively detailed project proposal outlining the features and
dates they will be done by. Don’t be so concerned with the dates,
the project will inevitably take longer than planned. However, you
should make a point to include as many features as possible for the
given price. In the end you will eliminate features, but this way,
you won’t be negotiating a higher price to add features you
could’ve included in the first place.

3. Introductions to the money guy and the lead developer

So this is where things become a little
more frustrating. Your nice english speaking salesman will fade
into the background and you will be introduced to the guy who makes
sure you pay, and the guy who will be building your site. The money
guy, in my case Rajdeep, will pop up sporadically throughout the
development process “to ensure you are satisfactory” and “please
release next milestone payment at convenience by today.” Make sure
that you are being updated on the progress of the website and they
are taking your feedback and incorporating it into the site. If
they aren’t, withhold payments until they do. This is really the
only leverage you have over the the money guy.

Your introduction to
the developer will be necessarily a little frustrating. All that
time you spent hashing out the details with the salesman will have
to be repeated with the developer. The developer’s English skills
(Rajdip don’t be offended) will be a little worse. As a programmer,
he will be more concerned with the nitty gritty details and
technical features that you want rather than the amazing,
revolutionary concept you have. It helps to have a clear
step-by-step outline of how your website’s users will interact with
the website. Throughout your talks with the developer you will also
be able to figure out which features would be best left out. For
Trekdek, I recently decided to eliminate a separate blog section
that was unrelated to any challenges. This lets the developers
focus on the most important features of the website which is
challenge creation and accomplishment.

4. Keeping tabs on the project

Your project will inevitably be delayed. Trekdek was
supposed to be launched in November. It is now supposed to be
launched by the end of January. I’m thinking this won’t be launched
until March. The most important thing is to ensure progress is
being made. I made the mistake of not being strict enough about
getting weekly updates and setting agendas for the weekly Skype
date. As a result, I’m confronted with a list of updates on Friday
mornings and an unfocused discussion of what needs to be changed.
You should get updates on Mondays so that you can be prepared to
discuss them the following Friday. I plan on doing a better job of
this for the duration of the project.

The benefits of outsourcing to India is primarily the cost savings. Hiring an American developer would have cost 3-4 times as much. Had I decided to do the website
myself ,I would have spent many years learning how to program
poorly and it never would’ve gotten off the ground. For a
relatively simple website (basic e-commerce shop or blog),
outsourcing may be the best option. For more complex websites, one
must carefully consider the costs and benefits of outsourcing. When
trekdek.com is finally launched, I’ll let you be the judge of
whether outsourcing is worth it.

Cheers,

Dale

PS: Christmas and New
Year’s blog post soon to come.

Advertisements

20 responses to this post.

  1. Posted by Tamer Elfiky on January 6, 2011 at 1:56 pm

    You do not realize what this post has done to me, ever since you posted this on fb, ive been on that site, creating a provile, taking tests, proposing jobs, its like crazy easy out there…

    Reply

    • Haha well im glad i introduced you to the world of outsourcing. It’d be interesting to see if you can outsource your entire job.

      Reply

  2. I’m excited to see the final product!

    Reply

  3. Posted by Manish on March 27, 2011 at 5:09 am

    Nice post. I work here in India and its nice to see a customer’s perspective who is outsourcing the job. Can you tell me which city in India did you outsource it to?

    Reply

    • Kolkata.

      Do you believe my analysis is accurate? It’s definitely been a learning experience working with these guys and as a non-hacker, it’s definitely not easy. Do you recommend outsourcing for startups and non-hackers?

      Reply

      • I agree with most of your points here. Basically, outsourcing to India depends heavily on whether you are able to find the right partner to outsource to.

        There are a lot of brilliant engineers and even more average/below average engineers and it becomes difficult to separate between them. In your case, you decided to outsource to a company which has all the roles that you mentioned (sales guy, finance guy, developer etc).

        In my opinion, this system is vulnerable to developer fleeting the company for a higher salary offered to him elsewhere which can put your project at risk. Instead, outsourcing to independent freelancers can be more beneficial to you as they are working for themselves and their income depends on the whether they get your project done or not. Also as they only have to pay for themselves, the cost can be lower because in your case, the company would pay the sales guy, finance guy from the project income while in case of freelancing, its only the developer who needs to get paid and so he may give you a lower quote than companies. And also you wont need to repeat the feature set to developer again and you will only have one person as your point of contact from the start to end who is familiar with each and every aspect of your project.

        This is my opinion after having worked as a software engineer in India for 2.5 years.

  4. Hi Dale, I’m just curious. Did you pay more than $3800 since the project has been extended to March and the developer has to put in more time than was initially planned?

    Reply

  5. Posted by Sean Coleman on March 27, 2011 at 6:52 am

    I believe there are 2 types of changes when it comes to development that are at the root of delays.

    The first is a change because the owner changed his or her mind about a feature. There is a distinct directional change, generally opposite what was originally said. This usually involves adding a new feature or removing a previously coded feature.

    The second type of change is based on a lack of clarification and the developer’s best guess at the time. Most of these are very minor “changes” but can be very time-intensive to do. One example is pagination. The owner could say that he or she needs all the items to be paginated with 20 per page. This seems very clear, and pagination is pretty standard among websites. Then the developer implements pagination. The owner realizes that the back button on the first page should be hidden since it is not of use, but the developer simply has it disabled. Therefore a change is made based on a lack of clarification.

    This was long winded, but my point is that I think 80% of delays are from change #2, with only 20% from real “changes.” Do you agree?

    Reply

    • That is probably right. The problem is as a non tech founder, it’s difficult to gauge how much delay a change will cause or even how to specify a change.

      Reply

  6. Posted by Bhanu on March 27, 2011 at 6:55 am

    Good post. How are maintaing your website now if you are not a savvy? How r u feeling about the quality of the end product?

    Reply

  7. Posted by fritz on March 27, 2011 at 7:37 am

    I have mixed feelings about all of this. We’ve outsourced various projects to eLance. Two of those went very well, others not so well. I’ve been programming for over 20 years now, which makes it easier to judge the results. We are outsourcing on an hourly basis. On fixed priced projects, customers/providers start working against each other as soon as the project starts.
    The other thing is, I prefer working with individual developers, not outsourcing companies. Communication is best done with the developer himself, and all the money should go to the developer. After all, the developer (and designer, etc.) is the one who provides the real value.
    I will be checking you website from now on to see how things are going. Good luck with your project.

    Reply

    • Hey fritz thanks for the feedback. The incentive structure on the fixed price model might skew things a bit. Getting the project done quickly is in the incentive there while the hourly basis encourages developers to take as long as necessary. I’m probably over simplifying all the factors that go into it.

      I’ll be posting updates every now and then on hacker news.

      Reply

    • Also as a long-time lone coder, I have to agree with Fritz. The sales team doesn’t serve any useful purpose to the client; their job is only to reel in sales for the agency. The fact that they can’t communicate your requests to the developer is a bad sign; if they can’t do it, it’s unlikely that the client will be able to communicate those things well either. For the price, I’d say any kind of web app you can build for under $5k is incredibly cheap…but I’ve seen clients go this route and end up with something at the flat rate that simply wasn’t viable. I’ve yet to see anyone end up with a satisfactory site ready for launch without spending 2-3x as much as the initial flat quote to get things in shape.

      When I outsource excess work, I always work directly with individual coders in the US or the UK. At $125 or £85 per hour or so, we’re talking about radically more expensive work, but I know what I’m going to get. And perhaps not surprisingly, a guy who demands £85/hr. tends to work so much faster and more skillfully than someone who’s asking £15, in the end I think the cost is about a wash; but the process is far less frustrating, because I know I can get on the phone and have a 15-minute conversation which addresses all my concerns, rapidly communicate to the developer who understands exactly what I want, and then not worry about it, and know it will get done right the first time.

      My last experience with an Indian team involved a relatively simple CMS that had to be set up around a large web app I was writing for an American startup. I wasn’t interested in doing a CMS and had too much on my plate; I recommended a few people in the $75/hr. range who do custom Drupal stuff. They decided to outsource it for something like $2k to an Indian firm. After weeks and weeks of delays and shelling out an extra $2k for changes (they weren’t easy-to-please clients, either) the final product was so worthless they had to write it off and hire a guy in the States. He, being expensive and fast, had the whole system done in under two weeks for about $4k or what they ended up taking a loss on in India.

      Reply

      • Posted by Paul on April 14, 2011 at 7:05 pm

        I agree about expensive/fast beating cheap/slow. I have been on both sides of that fence, and have a great web guy here in Toronto who can put together pretty complex sites, with some back-end functionality, for around the $3k mark. This is Canadian, so it’d be about $5k US 🙂

        I charge $150+/hr, which scares off a lot of clients. The ones who use me give me a lot of repeat work, because I can get the work done right & fast, and it usually costs them less than doing it in-house.

      • Actually the Canadian dollar is about the same as the US I believe.

        In retrospect I would’ve gotten a coder friend to spec it out and hire someone on an hourly basis.

        Good call.

  8. […] itself is about trading time for cash savings. I wrote a blog post in the past about my experience outsourcing to India. Some of the issues that arose from outsourcing code involved difficulty communicating, unrealistic […]

    Reply

  9. Posted by Bravechipolino on September 27, 2012 at 12:20 pm

    So, it seems at the end you purchased a wootheme and setup a website in wordpress? How did it end? The outsourcing, I mean?

    Reply

    • A couple things happened:

      a) I reduced the scope of the work and eliminated many feature requests.

      b) The site ended up being completed, but it wasn’t stable (lots of bugs and all that) and I didn’t really want to waste any more time dealing with the developers so I ended up not using it.

      c) I realized that I should just deploy a very basic site and figure out what people want before I start getting developers to build custom stuff. So right now we put up a wordpress site and are going through the customer development cycle.

      I’m glad I went through the outsourcing process as it made me realize I should figure out my business model first and verify it with actual customers. It also made me realize that working with teams from overseas may not be worth it unless you know exactly what you want.

      Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: