

A few things I've learned about outsourcing to India - dmd149
http://trekdek.wordpress.com/2011/01/06/a-few-things-ive-learned-about-outsourcing-to-india/

======
jread
I would highly discourage a non-technical person from trying to manage a
foreign outsourced software project. For what it's worth, I've managed a few
such projects over the years with developers in India and China. My experience
has been that you absolutely must have a technical person in house who should
expect to spend a significant amount of time very thoroughly documenting and
verifying their work. For a smaller project, it really doesn't make sense
because you'd be able to finish the project yourself in the amount of time it
takes you to manage an outsourced team. For larger projects, expect them to
spend and bill at least 2-3x the hours (and 2-3x the number of developers)
that you'd find with a local dev team. Also, don't expect any creativity or
initiative to fill in gaps in your requirements... you will have to be very
specific and explain every minor detail of functionality and behavior in order
to get the project done right.

~~~
shrikant
_Also, don't expect any creativity or initiative to fill in gaps in your
requirements... you will have to be very specific and explain every minor
detail of functionality and behavior in order to get the project done right._

Completely agree with this.

But here's another way to look at it: why would the outsourced team show any
creativity or initiative? They're basically being treated as a commodity,
because typically the projects that go to such places do so because these
projects are 'cost centres' - some business guy decided to get the 'i have an
idea, the rest is implementation' part done as cheap (or "cost-efficient") as
possible.

When the programming team has no engagement with the idea or the organisation
or even the product they're contracted to build, why would they expend any
creativity or initiative for it? Not everyone is personally driven by a sense
of excellence, sometimes people just want to get the job done. And my
experience in such places is that a lot of the programmers there aren't in it
for the love of software/IT/tech, and more focussed on just getting a job
done.

------
jwr
> 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.

I think you might have eliminated a fairly large group of good experienced
contractors who care about their bottom line. The really good ones can't
afford spending too much time discussing details with people who don't have a
very clear idea of what they want to build and a specific budget.

Good, experienced contractors will want to snatch projects that are well-
defined and with a good budget, then build them quickly and efficiently. Hence
the question about your list of features and the quick price quote — they want
to know whether your budget is in even in the same ballpark and whether it is
worth their time to bother negotiating.

------
danenania
No offense meant to the author, but he sounds like a bad client and personally
I'd turn him down in a second.

The problem with being both penny-pinching and feature crazy is you will
quickly scare away the people who know what they're doing and can actually get
your project done. This leaves you the people desperate enough for work that
they're willing to put up with you.

If you approach the collaboration as if you were haggling with a car salesman
for a better model, it won't matter whether you outsource or go local, capable
people (who are generally in demand and can afford to decline clients,
regardless of where they're based), will sense that you aren't worth the
hassle and wait for something better.

The way to get good work done is to pay well, give clear directions about what
you want, and most importantly, limit the goal to a core set of features that
are realistically achievable in the proposed budget and timeframe. This is
actually the cheapest and most reliable way to obtain something decent that
works well in a reasonable amount of time.

Underpaying is much worse than overpaying. When you overpay, you can be more
confident in the estimates you get and that the quality will be there, and the
developers will be more motivated to do a good job for you (which can be
critically important). Underpaying gets poor quality, will make the project
take much longer if it even survives, AND the people responsible for your
entire system will rush through it and might even have a grudge against you
due to previously mentioned penny-pinching and feature crazy habits.

Summing up: aggressively seeking the most features for the lowest rate will
paradoxically net you a poor result with a large bill.

------
jasonkester
This was a great read, in a "Plan 9 from Outer Space" sort of way.

We have the story of a naive first time entrepreneur with his first attempt at
building a website and his first experience with eLance, with the sort of
unbridled optimism that you only ever see in people who've never tried to
outsource anything on eLance.

I love the authoritative "this is how it works" tone of the article, as it
outlines his stumbling along, misunderstanding pretty much everything, getting
bait & switched, watching his deadlines go past while his only meaningful
communication is with the guy asking for more money. Better still is going out
to find the end product (<http://trekdek.com/>), now that his "final,
definitely finished" date has passed.

Priceless. Thanks for putting a smile on my face this morning.

~~~
sivers
No need to discourage someone trying to be helpful. If he's learned something
helpful along the way, I'm glad he's sharing it.

I loved your awesome "Book a flight" blog post -
[http://www.expatsoftware.com/articles/2008/05/laid-off-
one-t...](http://www.expatsoftware.com/articles/2008/05/laid-off-one-thing-
you-absolutely-need.html) \- (also full of unbridled optimism) - without
needing to research how well that's worked out for you or not. I didn't need
you to be a travel agent or very experienced traveler to share what you've
learned.

The reader is the point, not the messenger.

<http://sivers.org/you-not-them>

~~~
jasonkester
I think the key with a post like this is the tone. If you're writing a "my
first experience trying X", you should avoid trying to sound like you have any
advice to give or lessons learned. You don't know what lessons you've learned
until much later. If he'd wrote it from the learner's perspective, it would
have been a much more interesting read.

We all had experiences like the author's during our first try at this. I made
just as many mistakes from just as many bad assumptions on my first for-profit
site. The thing is, I waited several years until I had some perspective before
I was ready to write that experience up in a way that would be useful to other
people.

[edit: this is the article I refer to:
[http://expatsoftware.com/articles/2007/01/6-things-that-
kill...](http://expatsoftware.com/articles/2007/01/6-things-that-killed-
waifmail.html) . You can only imagine how comical it would have sounded had I
spouted off about how all this stuff was going to work back when I was doing
it.]

------
troels
Hmm .. Not sure if you are aware, but there's a failure of reasoning in your
writing:

> 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.

...

> However, you should make a point to include as many features as possible for
> the given price.

See, these guys are trying to meet the minimum requirements because they are
being pressured to include as many features as possible for the given price.
They are merely playing your game.

~~~
dmd149
I should clarify: the ones I filtered out immediately because the dialogue
would end with a list of a features and a price quote.

With the ones I liked, the dialogue was a meaningful back and forth and
exchange of ideas. In the end I of course maximized the number of features I
wanted for a given price so I wouldn't be charged later for wanting to add
stuff that wasn't in the initial feature list. The ones I liked seemed too
have more ideas for the site.

------
zwischenzug
I'm surprised he's writing "lessons learned" before they have a product
shipped. I see the date's slipped from March to May...

~~~
dmd149
Excuse me, "lessons learning"

------
dmd149
So I've been reading all of your comments and I'd like to address the issue.

1\. Cost was/is a big issue. If it hadn't been, I would have hired someone
locally. I picked the best (or what I thought was best) team at the time based
on price and the intelligence questions I received from them.

2\. The company knew I was a non-technical founder. I made is explicitly clear
that they would have to use their best judgement to implement the required
features without having me to review the code.

3\. I actively encouraged them to use their best judgement. As things became
viewable on the front end, I would give feedback and they would tell me what
they thought would work.

4\. The primary issue is a communication issue on two levels:

    
    
        a) Communication between a non-coder and a coder
        b) Actual messages not coming through (status updates sent on schedule, not being online at the right time, etc)
    

After multiple attempts to solve the issues myself, I decided the best thing I
could do is find a coder co-founder. I did, and he is feeding back shorter,
concerte, assignments to the outsourced team. We are also focused on iterating
the release which means I hope to god we get rid of the godaddy landing page
soon. This is to be followed by the primary component of the site and then we
will assess from there.

As far as motivating the team again, that is a far more difficult thing to do.
I think the best thing for morale is to make progress (that way they can be
done with this blasted projected). I can't justify throwing more money their
way (nor do I have money to throw at them). When I was in Egypt I was even
thinking about flying to India and head to their office to see if I could help
there. It didn't happen.

For those of you who are criticizing the way I handled the whole thing, fine,
there are definitely areas where I made mistakes. If the whole thing collapses
it was worth it for the learning experience, however, I am firmly committed to
leveraging the outsourced team as much as I can via my co-founder.

Thanks for all the feedback,

Dale

PS: This is the most blog hits I've ever had (which isn't saying much).

------
SoftwareMaven
I've never had luck outsourcing development to India (for a variety of
reasons), though I know people who have. I'm curious about how those who have
been successful managed to succeed, and if it was more than just sheer luck.

~~~
justanotheratom
I know of one case. Two founders, one American, one Indian (my brother), both
highly technical. They were almost running out of money but also needed 5-6
programmers and someone to manage them, so they could take care of the
business aspects. They took investment from angel investors, and my brother
opened up shop in his home town in India, which is a small city. IMO the key
to their success was that they were able to find this one guy who bootstrapped
the entire business in India and managed it very well. Also, since this was a
small city, they were able to find stable employees at reasonable salaries,
unlike cities like Bangalore, Mumbai etc. which are very expensive and people
keep switching jobs for salaries. Eventually the startup got acquired by an
American Corporation and the operation in India is still going quite well.

~~~
troels
Sounds like the key point here is that your brother is himself Indian and
technical. Most people don't have those benefits.

~~~
justanotheratom
That is certainly true. But I would like to emphasize the importance of having
a solid manager over in the India operation. Because even if you are Indian,
it becomes difficult to manage from a long distance.

~~~
sid6376
I agree, i know of an entrepreneur who wanted to build a wildfire like app and
hired some indian developers, but the project kept getting delayed and some
stupid technical decisions were made. For his next project he went through
references and also through drupal forums to find the developers. He then met
with them personally and was in constant touch(it helped he was in india a
lot) till the launch of the project.

------
wicknicks
A fresh startup requires extensive attention to detail. The merits of
outsourcing are cost benefits. If putting in a few months of work into
learning the software tools would get you to build it -- then put in the time
and effort to do it. Build your baby yourself.

------
ericb
This article contains terrible advice.

Here is how to do it better: Search the coder's completed work pages on the
freelance site using google's inurl: and site: search operators to limit your
search to the pages showing coders completed work.

Target 10-15 coders who have completed something exceedingly similar to what
you want, in the framework and language you expect, and received a high rank.
Look for individuals, not companies, otherwise you can't be sure the expertise
is still in-house.

Detail your specs exhaustively. Invite these coders to a private auction.
Award the bid to the person who asks the most intelligent questions,
regardless of price, as long as it is anywhere in the ballpark.

edit: The article's point about checking in frequently IS a good one, however.

------
sivers
Great article!

For what it's worth, here's my take on the same subject:
<http://sivers.org/how2hire>

Similar problem, different perspective, some similar solutions. Hope it helps.

------
PaulHoule
I think his expectations for what it costs to create any sort of social
networking site are unrealistic. I've seen projects in the U.S. quoted out
around $5000 that have failed miserably, and the ones I've seen succeed have
spent about $40,000 on initial development -- and unless you've got incredible
luck, a talent for viral marketing, or some kind of "edge" (preferably all
three) you can easily spend that kind of money on marketing too. (Ok, in this
case the "money" might be you doing 6 months FTE doing PR and sales)

You can get away with shoddy U.I. work if you do "enterprise" development
because the people who buy the product won't use it. Social web sites need to
seduce users, so fit and finish matter a lot. If you make people click too
much or the design looks cheap, you can put people off.

If the site gets traction, he'll quickly discover that a social system becomes
a trouble machine which will require the need to solve technical and "people"
problems quickly, and the $3800 programmers can't help him with that.

------
mailarchis
A lot has been written about outsourcing and shared on HN. I think one way
that may help you outsource better is to start with a prototype built with the
help of someone who is local and available close to you. A wireframe with
complete mock up flows of all pages or even better a static html website that
mimics all user interaction for the web app you want to build. ( Refer -
<http://www.svproduct.com/high-fidelity-prototypes/> by Marty Cagan. He was
previously VP Product Management at ebay)

Of course you will still have to find out a good offshore development team,
but you will be making it lot easier for the potential service providers to
come up with better cost and time estimates.

------
DjDarkman
Is it just me or this should have been a crazy rant about how much outsourcing
sucks?

I don't want to sound like a racist(don't take this the wrong way), but I had
a lot of projects where the client previously employed Indians to do it, who
conveniently took the money and left a poor excuse of a product in it's place.

Most of the code Indians leave, is simply trash, no I don't mean bad code, I
mean trash something that you will be forced to throw away.

Indians may be cheaper in the short term, but they won't be able to build your
product.

These Indian freelancers give the rest of us a bad name(including the other
Indian freelancers who are good coders).

------
punitrathore
> 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.

For an overall better experience I would suggest paying by the hour. Cause
once the project gets delayed, the developer starts losing interest in the
project, since he/she won't be making any more money from you. You would
obviously expect the work to be finished without paying them more, but the
developer on the other hand wants to make more money. So this becomes a
chicken and egg kinda situation.

------
dr_
My own experiences with eLance haven't been great, but I'm sure for some
people it's worked out. It's best to work with local talent, even if it's
going to be more expensive.

I'm guessing trekdek hasn't worked out since if it were going to launch any
time in the near future, a coming soon page of some sort would be in place of
the GoDaddy landing page. But that's ok - I've done many things which haven't
worked out as well. You should regroup and try again, you will find you have
learned a ton from the mistakes you've made in the past.

------
donnyg107
One can argue that good code is good code no matter where it comes from, but I
think this guy should hire an engineer with whom he can discuss the big
picture stuff and can edit when the outsourced code returns. Engineers are
useful for their feedback on the technology too, and he could probably greatly
improve the sight and explain in detail what kind of technology is at play. I
think a CEO should be well informed about his own technology even if he's
contracted it out, and should have a close ongoing relationship with
engineers.

------
dmd149
Hey all!

So the outsourcing wasn't going so great as a non-hacker so I found a co-
founder to start managing them (the India guys). I'll be uploading a blog post
about new things I've learned soon.

~~~
krakensden
So... at what point do you become expendable?

~~~
daydream
Come on. The world doesn't revolve around programmers, despite what we read in
the NYT and LA Times. It doesn't revolve around anyone. The fact that the
fellow doesn't program doesn't mean that he's a newborn infant in the woods.
It takes many hats to make most anything succeed.

~~~
dmd149
Thanks for coming to my defense. It's true at this early stage I tend to feel
like a worthless turd, however someone has to learn marketing, sales, finances
and all the business shenanigans. A programmer could do that too, but since he
is occupied with managing the important part, I figured I'd make myself
somewhat relevant.

~~~
donnyg107
If any programmer thinks they can pull off a solid VC investment without
excessive research and data supporting their product's potential for success,
they may as well just sell their code off to someone more informed. You're as
necessary as anyone.

~~~
robryan
Not all people calling themselves business co-founders are great at this
either. (Not saying in this case just in general)

------
simeshev
I've kept laughing up until "... weekly Skype date." To get my sanity back
I've had to listen to <http://www.youtube.com/watch?v=ZA1NoOOoaNw>. Now I am
back and lucid :-)

------
jteo
Wouldn't a HN related freelance board provide much higher quality work at a
reasonable price?

~~~
SingAlong
Agree! the HN hiring thread or the contractor spreadsheet might have helped
too (but I doubt the " _reasonable price_ " part :)

I definitely did not feel good after reading the post. (Most of) these guys on
the freelance sites seem to be undoing the good work by others from the same
geographic region by providing such poor service and thereby allowing others
to define the stereotypical " _Indian developer_ " by the poor quality of
services offered. I personally know fellow good programmers who would be
offended by kind of service offered by these people.

IMO, the author of the blog post should have taken help from a technical
friend to choose the contractor(s).

In the couple of interviews I've gone thru (and even while making friends),
the opensource code I've written and the a reference at the startup I did my
internship at, has come to influence the other party's decisions and outlook
towards me.

I sincerely hope, that the author has his project completed at the earliest.

------
amorphid
I give props to the guy for trying. I've been the non-techie trying to build
software, and it is a biyotch!

------
ilkhd2
you get what you pay for.

