
Why I Will Never Feel Threatened by Programmers in India - jplarson
http://blog.jpl-consulting.com/2011/12/why-i-will-never-feel-threatened-by-programmers-in-india/
======
smg
Look around you and you will find that most American companies hire lots of
Indians as programmers. Do you think that the guys who ended up coming to
America suddenly transmogrified in to competent programmers during their
flight across the ocean? Do you think that those Indian engineers who decided
to stay back and work in India are any less competent than the ones who took
the flight? Having worked in both India and the US for over a decade, my
experience tells me that the distributions for programming skills are almost
identical in the two populations. The top percentile of programmers in India
(those who work for Google, MS, Amazon) are as good as their counterparts in
the US. The $12 crowd is about as good as the craigslist freelancers who
charge a similar rate. While you may not have to worry about being replaced as
a programmer, what you should worry about is an India startup like Zoho or
Freshdesk competing with your company. Unlike China where startups can focus
on the largely internal Mandarin speaking market, Indian startups are going to
come after all the English speaking markets.

~~~
ori_b
The suck in outsourcing doesn't come from the location you outsource to. It
comes from hiring bottom of the barrel programmers embedded within a large
bureaucracy.

~~~
gte910h
And some typical boys club culture clash issues with accountability and
honesty

------
patio11
Quote one of my past Indian coworkers: "If you pay peanuts, you hire
monkeys.". Which is the chuckle worthy way of saying that eventually the
markets are, all else equal, fairly efficient, and that the labor pool
available at $4 an hour to bill to you at $12 an hour has systemic, pervasive
competence issues which will prevent the successful completion of many
projects.

Anyhow, beating the usual drum: don't be a cost center. Figure out how the
business works and nobody will even consider outsourcing the projects you'll
work on.

~~~
ankeshk
If you want to outsource to India, you need to find a company that hires super
stars. Super stars in India demand a salary of Rs50,000 to Rs 100,000 a month.
Which is still quite less from international point of view: its about $1000 to
$2000 a month. A company hiring them will bill you a minimum of $20-30 per
hour. Usually more like $40-45 per hour.

If you go with a company that is billing you less than that from India, you
should know that your work will suffer because that company does not hire the
best skilled coders.

~~~
daliusd
It is less from Western point of view not from international. I'm sure that in
Latin America and Eastern Europe prices are quite similar and time zone
differences are more acceptable. India lose in this price range because of
cultural differences as well. Usually those are small details like matching
Christian and/or international holidays (therefore no conflicting days off)
but sum of those details are really significant.

Again your point just confirms fact that Western developers shouldn't worry
about competition from India.

~~~
GFischer
I'm in Uruguay, and Tata Consultancy Services (TCS) opened a huge facility
here to address just that (the time zone differences) as we're in the GMT -3
timezone.

But they're having trouble filling positions at their salaries, most decent
programmers here earn more than U$ 1.000 (I make U$ 1.500 myself, and want to
make at least twice that, so I'm about to start my own company).

------
psychotik
Based on previous experience working with an outsourcing firm in India, and on
what I know/hear from friends back home, here's what I've observed:

\- Although the raw number of 'programmers' in India is large, the percentage
of good programmers is smaller than that in the US (anecdotal, as observed by
me over ~10 years). So essentially, you get what you pay for because the good
programmers can command (and deserve) salaries close to what their
American/international counterparts make. Many of these better programmers are
snagged by the Amazon/Microsoft/Google of world who have development centers
in India.

\- A lot (most?) of firms in India that employ programmers do not invest in
educating/developing their employees' skills. This is partly the result of
employees jumping ship very often (hence making the investment in their
development not worth it), and partly the result of the business (they do one-
time contracts and paid by the hour, so delivery == success.
Quality/sustainability isn't as much of a concern).

\- For a large percentage of programmers, career development is defined by a
larger paycheck, not necessarily stronger experiences/skills. Therefore, their
motivation is to switch jobs very often and do the same caliber/quality work,
and yet make more money with each switch. So they too aren't motivated to
excel.

~~~
dman
au contraire - the average Indian firm I have had an experience with spends
far more time, money and effort training their employees than employers here
in the US. I say that as someone who has worked in India for a couple of years
and who has been working in the US for about 5 years now. US companies that I
have worked with largely expect the employee to pick up tech skills in their
own time.

~~~
yuvipanda
It makes no difference. You _will_ need to spend a lot of time, money and
effort 'training' your employees when they are at a level where they see a C
compiler tell them 'Semicolon missing - Line 19' and have absolutely no clue
as to what to do with that. Or they've to call up a friend to figure out the
'difference' between * and & in C.

Source: A lot of my friends go through said 'training'. And I was that
'friend' who was called.

------
kamaal
I am from India and let me say you don't have to feel threatened by _bad_
programmers in India. The problem with posts like these is they make massive
generalizations which are not true. Not every body here is a genius and not
everybody here is an idiot.

I have worked in extremely challenging projects which were billed for dirt
cheap prices. Considering the cost at which finished the projects it was
almost like we were giving our work for free. For every story like this there
are a 100 good stories you will hear out here. There are also cases where
people do endless work and those hours don't get billed. Yes, there are a lot
of cases like this as well. There are 1000's instances where we do work
without billing them because some one at onsite put a polite request. I used
to work with a very senior person in the UK. During meetings he used to be
shocked that we put that crazy hours and efforts for such low prices.

The problem some projects fail here in India is because of the same reasons
they fails else where.

When you talk of all this, even manufacturing in China. You need to look that
whole picture and then see how the statistics work. At volume, and that scale
of economy, If you measure No of Failures Vs No of Success and measure them
against money saved. It's a very different story.

One project failing somewhere doesn't talk of the whole outsourcing story.

~~~
drieddust
Spot on. My 10 years’ experience in outsourcing industry is similar[0]. I
think of this as another instance of bias against Indian outsourcing. I have
seen many instances during my career which seems to indicate that pricing do
not correlate with performance.

[0]<http://news.ycombinator.com/item?id=3182996>

~~~
doktrin
Your view could also be interpreted as being biased against US based
developers (what you refer to as 'Native') and the racism you perceive them to
be exhibiting.

~~~
drieddust
In this context I am just trying to explain that price do not necessarily
correlates with performance. As far as racism is concerned it definately
exists on both sides of the globe.

Meme against Indian is "Indians are taking our jobs by unfair means like
working below sustaintable rates".Meme by Indians is "This guy is here to boss
us around and confuse us just because he happens to be on the client's
payroll."

------
andrewfelix
_Why I Will Never Feel Threatened by Bad Programmers_

I fixed the title for you. Next time try and avoid generalizing entire
countries.

~~~
bguthrie
This is correct.

Good programmers in India, like good programmers everywhere, _cost more_ than
bad programmers. If you would like to hire a decent shop, there are boutiques
and larger firms available, but they will charge $40-50/hour, not $15. The
problem isn't in the outsourcing, it's treating development like a $15/hour
commodity. We all know that it doesn't work that way.

The author described paying an hourly rate for their offshore developers that
was 10% of the local rate. If you compare the salaries of good developers in
places like Bangalore to developers in more wealthy countries like the US, you
will find that the difference is not that vast--maybe 25-40%, not 10%. If you
would like to hire these people, expect to pay corresponding rates and receive
good-quality work.

And don't let anyone tell you that you need crystal-clear requirements; pay
for a qualified local business analyst and expect to spend a lot of time on
the phone with them.

~~~
jrockway
But there are plenty of good programmers in the US that will work for $50 an
hour, which ends up being about $100,000 a year. And if you can have your
users, analysts, and programmers in the same building for what it costs to
outsource, why outsource?

~~~
bguthrie
$50 sounds low to me--I'm not on the sales side, but I'm told that $75 is
closer to the minimum for, e.g. a Ruby skillset, and many shops, such as my
employer, charge much more--but yes, at that rate you're better off going
local, particularly for the colocation benefits.

------
compay
I'm a partner at a Ruby outsourcing company in Argentina. I sympathize with
the author, but I think the conclusion that outsourcing doesn't work is overly
broad.

The crux of the problem is that working with a remote team is a __very
__different proposition than working with people onsite - a fact that is
obvious but that people generally fail to act on.

Quite often at my company we're contacted by clients want to hire folks in a
foreign country and expect them to work like remote employees, but cheaper,
and with fewer legal responsibilities. They think that through the wonders of
Skype and email, people in India (or South America) can work just like on-site
employees.

The reality is that outsourced development to remote teams only works when the
client is willing to adapt their own work patterns to it. As a client, you
need to:

* Have a __crystal clear __idea of what you want built. The less communication overhead you have with the remote team, the easier your life will be, and the more likely it will be that stuff gets implemented the way you want to.

* Have frequent and early deliverable dates. Don't start a project that will take 6 months to get a first release out with a remote team. Shoot for as early a release as possible, followed by frequent small releases. This lets you pull out almost whenever you want and also reduces the likelihood of burning out the developers on the other side.

* If you already have a company with a bunch of people, have the remote developers work outside your regular dev cycle. Don't expect to plug in a couple of guys located 5 times zones away into your regular team, unless your regular team is already distributed.

* Be linguistically very compatible with the folks you're outsourcing to. If you have any difficulties understanding or being understood by the folks you're hiring, then you're significantly increasing your risk.

The well known Ruby consultancies like Pivotal, Thoughtbot and Hashrocket will
all tell you, that outsourcing to foreign countries is a mistake, and that
developers __need __to be on-site. This, of course, while basing a huge amount
of their business on Rails and a bunch of other open source libraries and
frameworks which are developed almost entirely by distributed teams. These
companies have an economic incentive to lead people away from outsourcing to
cheaper countries, so follow the money.

It just also happens to be the case that since many clients don't understand
how much their own workflow needs to change, many outsourced projects fail and
reinforce the idea that outsourcing doesn't work.

~~~
paulhauggis
"Have a crystal clear idea of what you want built."

Rarely have I ever worked for a company that knows this. The last company
where I worked would change their mind mid-stream every couple of weeks and it
added almost a year of extra time onto the final release date.

It's usually not this bad, but if more companies followed this (not even just
with outsourcing), there wouldn't be as many failed projects.

~~~
bad_user
It isn't bad to change requirements depending on user feedback. You can have
the best implementation in the world, done after the best specifications in
the world; but it's all for nothing if customers don't want it.

------
yummyfajitas
Here's why you should feel threatened by programmers in India.

I recently hired a guy over there to work for our startup. He's smart and he
gets things done. He's still a little green, but overall he adds a lot of
value to our company. He's just as good as anyone I would have found in the
US.

And after we exit/die, the company he starts might be competing with yours.

India has a billion people, 10's of millions of code monkeys, and millions of
good coders. The existence of code monkeys doesn't mean you don't need to
compete with the smarter guys.

~~~
beachgeek
Except that he won't. There seems to be a strong societal and cultural
pressure working against people that want to go into business for themselves.

My Dad thinks I'm a bonehead for spending my time at startups and such even
though I've tried explaining how working at a large corporation can suck your
soul out. I'm pretty sure its not just my Dad and immediate family.

~~~
gnufied
Isn't that little anecdotal? Yes agreed there is, social bias against people
who want to do start up. But I see many people coming up against that and
starting up their own startups. Agreed majority are still sweating in IT
services, but we don't expect them to do startups anyways.

In fact, If OP was able to hire a single guy who is good and works remotely,
that single guy is 100% startup material (otherwise, he would have been
already employed at big IT service company) and very likely to start on his
own few years down the line.

~~~
yummyfajitas
Actually, my guy was employed at a big IT shop (Microsoft, not an outsourcing
shop). He quit since he felt he was stagnating.

------
combiclickwise
There is some truth to this. A long while back when I was doing projects, I
got a project from a US company.

When after a week of understanding the scope, I quoted my price at around
$150/hour they were shell shocked. The work was for redesigning systems that
simply were not scaling (designed originally by a US company by the way). At
the last minute they backtracked and demanded that since I was from India and
the cost of living was much lower, I should charge them around the standard
$25/hour.

I can never compete in the project game - and I dont want to anymore - because
of this attitude by every single US company that I have ever interacted with!

I passed them on eventually to a $20/hour company in Delhi, even while I
explained to them that none of the coders there had any experience with
designing systems that scale.

There is also a tendency to feature creep the project since it is only
$20/hour which amuses me and is a sure fire recipe for failure. When we ask
them if they want a project manager or an architect who can work with them on
architecture/ feature set selection they refuse because they cost way more
than the coders.

I am not saying your experience is not true, I am just saying that given the
attitude towards India, it is bound to the experience more often than not.

The non-completion of the project above could have been for many reasons...
feature creeping, inability to communicate what the client wants, language
differences and yes, downright bad coding. Since you were not able to clinch
the project - which I believe is simply bad salesmanship, like in my case
earlier - your "I told you so" rant is based on a massive leap of faith that
you or any "US based" programmers could have finished the project on time,
which I am simply have no reason to buy.

------
jwatte
The people who can’t finish after double the allotted time exist in the US,
too. Except here they bill the government $100+/hour to not finish FBI case
file systems or air traffic control revamps.

There exists good developers in India, but they are harder to find than good
programmers locally, because of the distance.

It really is the case that 50% of everybody is below median — doctors,
programmers, judges, …!

------
idoh
As a product manager for the last 6 years, I've had the opportunity to work
for outsourced teams in India, Romania, and Ukraine. I've become really good
at managing remote teams, and it can work out really really well. What I write
below is based on single data points in each country...

India: I didn't like working with the Indian team. They had the tendency to be
overly literal and "by the book" - the book being whatever tech stack they
knew. They wouldn't ask questions or push back on things, and the result was
crap.

Romanian and Ukrainian teams: did / doing an excellent job. We were able to
get them at $40-50 an hour, and they are every bit as good and productive as
local teams. I sometimes feel like I like working with outsourced teams better
than local teams, because the relationship is straight-up business. I have to
make sure that everything I ask for is really strong and really helps the
business because I'm very aware of the costs involved.

Having said that, it is important to have a couple things: have someone local
who can look over the code and be a man on the inside, to make sure everything
a PM can't see is to the standard, having a good project manager of the remote
team, and have someone who manages the whole thing who knows how to do it.

~~~
T-hawk
> the Indian team. They had the tendency to be overly literal and "by the
> book"

My anecdote: We had a spec for a financial business application. Two of the
database fields were last-changed-username and last-changed-timestamp. The
document mistakenly had them populated backwards, specifying that the current
user's name should be populated into last-changed-timestamp and vice versa.
You can guess what happened when the Indian outsourcee coded it.

"I ran this and got a type conversion error. Did you even test it?"

"Yes, I got the same error and that is what should have happened based on the
spec."

"How did you test the rest of it, then?"

"I was unable to proceed because of that error."

(I'm not generalizing from this one programmer to all Indians. I'm sure
programmers that dumb exist everywhere.)

------
jplarson
The author here, great conversation, gang.

To be clear, I don't mean to dump on India specifically, but rather offer up a
narrative that counters the notion of overseas talent being an insurmountable
threat. This missive applies equally well to any offshore outsourcing, but I
agree that generality gets lost. andrewfelix's suggested title "Why I Will
Never Feel Threatened by Bad Programmers" is good but doesn't quite hit it:
"Why I Will Never Feel Threatened by Outsourced Programmers" perhaps captures
my intended message the best.

This is about insights I've gained from "coming late to the party": projects
that first went for implementation overseas, and which I subsequently got to
clean up or improve upon. Much like many of you are saying, I found it
refreshing [within the context of the "threat" of outsourcing] to experience
that programming talent is indeed the primary factor in winning development
jobs, with solid communication ability (aided by proximity) a close second.

I don't know that everyone has the benefit of that realization born of seeing
firsthand how several such projects turn out (I didn't--out of school in '03 a
popular narrative was that programming jobs are vanishing and there's nothing
you can do about it). Calling out the myth of cheap overseas programming I
reckon can be useful to both programmers (encouragement) and decision makers
(insightful warning).

~~~
idoh
Re: coming late to the party, have you considered that maybe you are suffering
from some kind of reverse-surviver bias? In other words, that you only get
brought on to failed outsource projects. If the outsource project works well
then you don't see it.

~~~
jplarson
Totally fair point--the fellow I recently talked to is completely an instance
of that bias.

For sure, there's nothing statistically significant about my few experiences:
I have only observations of some of the shortcomings that are quite real.

------
mopoke
Why single out India? Sure, it's become a bit of a byword for "outsource" but
I think you'd find the same were you to outsource to any country - even within
your own country.

The problems pointed out largely surrounding happen due to the difficulty of
communicating with a remote team. Having the product owner and the development
team geographically distant make everything ten times harder; doesn't matter
if they're in India or on the other side of the same country.

~~~
beachgeek
Agree that communication (or lack thereof) is a key issue. That can be worked
out but having 11PM conference calls or combined hacking sessions stretching
to 2-3 AM gets old very quickly.

Another is the fact that the culture within a lot of contract shops isn't
exactly innovation-driven. I really don't understand how you could get an
engineer/coder passionate enough to be interested in some stranger's project.

Net net I agree with the author: you can still make a career out of tech. The
doomsayers from ~10 years ago who predicted the end of the US programmer were
wrong. I don't think however that big companies (Cisco/Microsoft: any company
with a big India development center) will ever hire legions of US programmers
again though. That train has long since left the station.

~~~
jrockway
_I don't think however that big companies (Cisco/Microsoft: any company with a
big India development center) will ever hire legions of US programmers again
though. That train has long since left the station._

Are you sure? Lots of US companies are hiring lots of US developers. Google
comes to mind immediately, but I'm sure everyone else is too.

~~~
beachgeek
At the big company where I work they're actively getting rid of their US-based
employees and hiring in India and China. My employer isn't one of the ones I
mentioned above. But I know from friends working there, that this is the case
there as well.

I think there are a number of reasons for this.

1\. Many engineers just aren't interested in the old fogey US tech companies.
Do you think a smart kid out of a US college would be more interested in
working at Google/Facebook or at Cisco/Microsoft? As a result they have a
tough time hiring. In India, people actually LIKE working for the man at big
giant companies. It is a status symbol. So its a lot easier to pick up good
talent there even if the company is regarded as a has-been in Silicon Valley.

2\. At some point in a tech company's lifespan, decisions seem to be made
purely for financial/cost-saving reasons instead of for product/customer
reasons. This is usually the point at which good engineers start leaving the
company because they realize the bean counters are running things. This is
also when these companies start expanding their India ops. Word gets around,
and hence this is somewhat co-related to point #1.

3\. Empire building: For some weird reason, engineering managers love having a
lot of reports. Its reasonably cheap and easy to staff up in India and China,
which means an engineering manager at some loser company in the US can get to
brag that he (its always a he) has 100 engineers reporting to him.

------
xxcode
With all due respect, there is no reason that folks in India will not learn
the same stuff the author learnt. They would (and probably are) on hacker news
- learning the same subset of things.

And, they live in a country where $2 still buys you a decent meal. I don't see
why they wont be able to do a good job, for less.

~~~
csomar
You are making a good point. I'm from a third-world country, and I'll tell you
why: they shouldn't be developers in the first place.

1\. Communication: They fail to communicate not because English is not their
native language. They'll also fail in their native language. Communication is
a skill. English is a language. They don't invest to learn good communication,
and also to learn the language.

2\. Coding: They are bad coders. They don't produce good code because they
don't want to learn version control, unit testing, and programming patterns.
They are too lazy to open up a book and read. They are too lazy to subscribe
to programming blogs and listen to podcast. They think that what they learnt
in school and university is more than enough.

3\. Creativity: Briefly, they can't look beyond their room window. They don't
bother to know if the UX is good enough or the kind of audience for their
product. They don't want to create. They prefer to copy/paste.

This is not India. This is most of the "developing" world, a also a part of
the "developed" world.

------
j45
Tech talent in other countries isn't the issue.

Demonizing / downplaying foreigners to feel better about ourselves doesn't
really solve it either.

Take a look at who decides to send work overseas to increase their
profitability. Business owners and management.

Threatened people are usually those who aren't moving. I'm not saying you're
not moving. If you're ahead... stay ahead. :)

If we don't feel threatened today and sit cozy, if developers elsewhere (even
in North America) keep improving, they will eventually catchup and get ahead.

------
tryitnow
I don't think the problem is "overpriced" programmers in the US or "bad"
programmers in India. The problem may not even be programmers at all.

My guess is that a big problem is "business people"(1) deciding to get their
idea implemented on the cheap without knowing the technical challenges
involved or even how to clearly communicate with programmers.

This just demonstrates that a founding team needs to have some sort of
technical expertise, preferably from everyone on the team. There's no need to
be a genius, but at least have a little, tiny bit of experience making a
computer do what you want it to do. That makes communicating with programmers
a lot easier.

I don't work for a startup, just the opposite, a huge multinational. I see the
consequences of relying on people with zero programming experience making
decisions about managing software development. There is definitely an attitude
of "just ship it to India" without really thinking through the details of what
that means. Tsk, tsk, the consequences will not be pretty.

(1) I am not bashing business people here, I am one myself, I am just saying
this is often the root cause of the problem.

------
ccc3
If the author were writing in the late 60's he could have titled a similar
piece: _Why GM will never feel threatened by Toyota_

~~~
jplarson
That's a very insightful perspective, but I'm campaigning in the opposite
direction. What I think you're implying is that GM was complacent, didn't feel
threatened, scoffed at the notion, and thus has been over taken.

My thought is that to a large part we've ALREADY been sold on the idea that we
can't compete, so we shouldn't even try--that outsourcing is here to stay, and
programmers in other countries will have no trouble out competing us. I'm
proposing that we don't believe the hype, that we can compete effectively.

It's a rallying cry against complacency.

------
mksreddy
Decent Indian Outsourcing Companies charge 50$/hrs. Authors friend was willing
to pay 12$/hr and he got what he payed for.

Outsourcing or not, if you want cheap, you will get cheap.

~~~
muzz
The whole point of outsourcing is to get something done at lower cost. If
$50/hr isn't significantly lower than what it would cost here (including
factoring in the intangible costs such as communication time, etc) then
outsourcing would no longer be compelling.

~~~
dasil003
$50/hr is extremely cheap in the US. You can find some competent people at
this level, but mostly pretty green. If you are hiring an actual agency,
competency probably starts at $100.

------
MrEnigma
I think some of these points could be made about any contract developers.

The biggest issue I've seen is that if you don't have things fully
spec'ed/flushed out, it becomes a mess. With a couple of committed developers
working together no matter where they are, let's you be more agile, and not
have to do as much up front work.

~~~
MrEnigma
Also, taking 500 cheap hours instead of 100 expensive ones, means your product
is going to ship later...

~~~
j45
Hours of outsourcing companies are largely about milking the most overall
money possible. Sadly North American companies have taken this hook, line and
sinker and they over pay for too many hours. First they fell for the empire
builders in their own offices, and now they fall for it with strangers.

I outsource and I don't tolerate a 20-30% overage in time at any rate.
Surprisingly 100 hour quotes can come down to 30-40 because there was a "mis-
understanding in scope".

Another thing I've found is a "Senior" person overseas has 3-5 years, which is
maybe $20-25/hour in North America.

Paying $14-17/hour overseas is hilarious for the disconnect in time, assuming
you know how to write clear enough specs that it works how clearly
communicated and understood.

------
2rams
Just because you pay 1/10th of a price that you will have to pay in the
developed countries does not mean that you are getting less quality people.
The truth is that the cost of living in a country like India is comparitively
less. 1 cent per minute is what we pay for telephones $2-3 is good enough to
get a sumptuous food. It is the macro economic factors that make workforce
available at a competitive price in India.

I think it is about lack of homework on the part of the outsourcer that causes
the trouble most of the times. When you are smart enough to hire a developer
at less than 1/10th of the price that you will have to pay you otherwise
shouldn't you be atleast twice that smart. A clearly defined wireframes with
specification document is a must before you start any project. Ask your
developer questions on the basis of wireframe to ensure both of you are in
sync. As a first step outsource 2-3 modules in phases to see if the developer
is able to meet up to your requirements. And do the above irrespective of if
you are hiring someone from India or any part of the world which promises
kick-ass developers at $100 per hour.

------
ravivyas
First point the title is rude.

One of the biggest problem in India is culture. Right now we have a culture
where companies like Wipro & Infosys go to campuses and hire 100-500 graduates
, majority of them are from fields other than CS where the companies provide 3
months on training. Why do they do this? Coz someone somewhere needs to get
workdone at cheaper cost, and 9 out of 10 times it cuts quality. Quality of
code for the client and quality of hiring for the company.

The other major issues is culture. Indians push their kids to be Engineers and
Doctors and kids do it even if they dont like it. more than half of my class
of 2006 is no longer in the Software development fields coz they never liked
it.

Edit:

Also you can get bad programmers everywhere , its just that India , due to the
population has a large number of them which makes finding good people &
companies very tough.

------
synnik
People are missing the underlying root cause of the lower quality programmers
in India -- Culture. There, upward mobility is the goal, not being the best
programmer. People take a programming job for a year or two, then look to
"advance" into management/leadership/etc. So the result is a large number of
junior programmers.

That, in turn, is why you need to give very explicit instruction, and why much
of the work needs a lot of QA.

Knowing this also makes it a lot easier to interview firms or individuals,
looking to their own personal motivations to see whether they match the
overall cultural trends or not, and thereby you can build a better team.

------
Gustomaximus
I've seen this outsourcing problem in a old role I had. For me there were 3
main problems;

\- Not adequate training of these guys. I tried to convince the powers to send
someone local over there for 6+ months to get these guys up to speed and ship
shape but the management feeling was a good set of written instruction will do
the job. Sorry, it wont for work roles of any complexity.

\- Being remote and in different timezones created lags in turning work over
that had to be looked at at both ends. Also they didn't all see the bigger
picture or side issues which are important to help understand motivations and
then create solutions and value ad in many project as they just had the main
brief.

\- Cultural differences with Indians I found is they don't like to say they
don't know how to do something. I think this is a loss of face not to know or
perhaps they are just worried about keeping their jobs. So often if you give
them a project and they don't know how to do, they will do something else they
do know how to do just to show you they were working. I kid you not... it was
really frustrating finding out a week later they didn't know how to do a job
so decided to make a new database instead because they could do that. It
created problems a bunch of times.

Overall in my experience I found outsourcing is good for jobs where you have
clear "A,B,C,D" instructions but for jobs that had to go from A - D and they
figure out B and C, your better off keeping this locally. But that said I'm
not adverse to outsourcing more complex work as these guys are generally smart
and highly motivated. I think the problems I had could have been fixed by
rotating local people in a reasonable ratio to the Indian group to keep
culture aligned and maintain personal contact.

------
jfoster
Outsourcing companies using a per-hour/day model don't just save on costs by
hiring developers who are not very good at what they do, they benefit from it
through increased number of hours required!

It's the model, not the location/nationality.

~~~
tsotha
This. Over the years I've been involved in cleaning up horrible messes created
by US based consulting companies using US labor. The incentive is to sell you
hours, not to sell you a working product, and the outcome is predictable.

I have not doubt you can outsource your programming work to India if you do it
the way companies like Oracle and Google do it - go to India, hire your own
management, hire employees, and give the local managers enough authority to
manage the project in their time zone.

------
nischalshetty
Good and bad developers exist anywhere and everywhere. May be because India is
a country of a billion people, even small percentages lead to a big number. So
your chances of finding not so good developers are higher in India.

But that does not mean that India is all about cheap software development with
code that never works. Outsource your projects to the right people and you get
things right. There are pretty good companies such as Slideshare, Zoho and
most of the big guns like Google, Microsoft, Adobe with offices in India where
great products have been developed by Indian developers.

All I say is, give developers in India the kind of money they really deserve
(which is still significantly less than what their American counterparts
command; it's more to do with the lower cost of living than anything else
really) and you would get software that matches international standards.

~~~
skrebbel
> May be because India is a country of a billion people, even small
> percentages lead to a big number. So your chances of finding not so good
> developers are higher in India.

Sorry, but you really should try and do that math again.

------
kokey
The project I have been involved with over the past 6 months has been quite
strange. I'm in Europe, and the company has a team in Hyderabad. The only
difference is that the team in Hyderabad is determining the requirements, and
I'm writing the code for them. It's a bit of a vice-versa land, especially
compared to a few of my previous projects. I think it's quite educational for
both them and us, to experience things the other way around.

With developers, you get what you pay for. Good developers in India cost
almost as much as good developers elsewhere, and the small cost saving is
eaten up by the losses due to distance and culture.

------
mamabiskothu
Well the problem is not about outsourcing to India, but outsourcing to people
who are not really programmers to begin with. Almost 80% of my classmates
ended up in software outsourcing companies like this. Guess what? We didn't
learn computer science or any meaningful programming in our classes, ever (we
actually studied biotech). Almost none of those guys have probably ever typed
a single line of code until they were hired. They're just put through some
intensive 2 month training where they suddenly magically learn programming
(most of these people barely passed every exam they've ever encountered in
their life, btw). I'd say 1 in 10 of those people actually cared to learn
stuff as opposed to just currying favor with the TLs and being dead-weight in
the groups. But the ones who do the work seem to be universally unappreciated
thanks to rotten corporate politics. I've seen meetings progress in these
teams and a bunch of stoned school kids have probably had much better luck
deciding on their agenda than these people.

Does it mean Indians are not smart? Of course it doesn't! It's just that most
Indians who actually _are_ smart either transport themselves to the States or
end up in the Indian branches of companies like Microsoft or Oracle. Only the
absolute bottom rung of barely-competent people end up in software outsourcing
companies and that is why you get such POSes out of them. And don't even get
me started on the call-center recruits!

------
mailanay
Although it is unfair to generalize this to all Indian software companies,
unfortunately, it is mostly true. In my opinion the reason is mostly one of
these three:

1) Some Indian companies, look to cash in the price arbitrage, and have a
short term view (3 - 5 years). So they bid for projects, where they have very
little expertise and experience. (In India, there is a huge market for sub-
sub-contracting. Companies, win projects and then look for people with
expertise to actually execute them. (Personally I have been asked to consult
so many times)).

2) Education in general is in shambles and especially C.S. education. Also
education is (unfortunately) a business. For example the latest fad is to
start Android development classes. So many are coming up. (but most of them
don't have good tutors. (Again, personally I am asked to come in as "Industry
Expert"). Students join these classes and 3 / 6 months later they consider
themselves qualified. (when in reality they know so little).

3) Most students (regardless of aptitude to software development) take C.S. is
college because of better job prospects. Obviously they cannot be good
engineers. There is such a shortage of engineers, that invariably such people
do get hired (which feeds the cycle) and lowers quality of output.

About Me: I am an Indian software developer and founder of a software
development shop.

------
dasil003
I wouldn't get too complacent. The reason for these bad experiences is similar
to manufacturing horror stories in China: basically companies that are
competing on price alone are going to give you the minimum they can get away
with. Over time companies that outsource are going to come to terms with the
failure of this bargain basement model and those companies will either improve
or be replaced by new companies that provide "good enough" service.

------
omouse
I'd feel more threatened by incompetent management and by manegement that sees
workers as replaceable things. The bottom of the barrell programmers that are
hired could be much better if there were training programs and they wouldn't
be undercutting everyone's salary/wages because they'd be more educated and
see that workers deserve more payment for their work.

------
EGreg
Tell you what, I want to see if this is true. So here is a unique offer.

If anyone here would like me to build a web application for them from scratch,
I will quote you a price and a time. The price will be my usual freelance
price ($100 / hour) but the turnaround time AND the quality will probably
delight you.

Here are my credentials briefly:

I have experience with C, C++, PHP, Mysql, Javascript, CSS3, HTML5, Node.js
...

I have built complex integrations using the facebook platform since 2007 and I
have built apps and pages for various brands etc.

I authored a framework that lets me develop social sites and apps in a
fraction of the time it would take from scratch. An earlier version was open-
sourced at <http://phponpie.com>

I can administer Linux and set up development environments, version control,
project management, and can act as a team lead

I have had to deal with issues involving scaling architecture (e.g. sharding),
security (e.g. CSRF prevention) and browser incompatibilities. In fact my
framework takes care of most of them out of the box, so I don't have to
reinvent the wheel anymore.

I've been managing a team of developers for the past two years
(<http://qbix.com/about>), so I could help you with leading a team

I've created some apps that have been downloaded about half a million times
and have 30k daily active users, so I could probably consult you on increasing
word of mouth and engagement.

I'm a CEO of a start-up, which has exclusively hired overseas developers. They
are Russian-speaking, however, not Indian. It works for me since I am Russian
speaking.

But I do consulting on the side.

The experiment is ... I am curious who reading this would actually contact me
and want to hire me. I will make myself available for the next month to do my
best on any project I decide to take on.

My guess, however, is that hiring is difficult and connections are usually
made through other channels (such as recruiters). This is why many people hire
Indian developers online. Because online, it is a much more attractive option.

You can contact me by going here: <http://qbix.com/about> and clicking the
right button.

I will report on whether I got any real offers :)

------
senthilnayagam
Be it onsite/nearshore/offshore, "What was the parameters evaluated to choose
a Consulting company or freelancer?"

If price quoted was the only criteria to evaluate, then there are many
unknowns

We face the reverse problem, so many times american clients come to us to get
a quote, after getting quote then telling it is 2x their budget.

When we give them a detailed breakup question the need for documentation,
requirement freezing in the name of Agile.

Also many question why the need to signing off with acceptance testing and
would ask for perpetual warranty support.

Now our new presales activity includes gauging clients software life cycle
knowledge and understanding working with remote teams.

We take clients and projects where we find a right fit, and can meet or exceed
client expectations.

We have been growing at 100% year on year for past 5 years, and employ 132
people now

------
harichinnan
This is like I paid for an iPad clone made in China and concluding that iPad's
made in China are of low quality. You need to be an Apple or Google or
Microsoft or you should have enough money to afford Wipro, Infosys or TCS to
successfully get work done out of India.

~~~
travisneotyler
I think you've mistaken the analogy here. China = Wipro/Infosys/TCS. Not
Apple/Google/Microsoft = Wipro/Infosys/TCS

------
jrockway
The problem with outsourcing to India is the problem with outsourcing: when
you give someone a spec and x dollars to implement it, you get exactly what
you specified. Most of the time, that's not what you want. You need someone to
say "no" to bad ideas and features that will take too long to implement
relative to the value they'll provide. Outsourcing companies won't do this,
since the incentives are set up for them to take as long as possible.

There are two reasons why you deserve your $250/hour rate: because you know
how to build software, and because you know what not to build. If you can't do
the second one, you're not going to make your $250 an hour.

------
VonLipwig
The majority of people who get burned are people looking for a deal. I mean,
it doesn't matter where someone lives $14/hr is cheap and you have to ask why
it is so cheap.

OK, the cost of living is cheaper in India than it is in the West. Thats fine.
However, if that means that they are charging 25% of the minimum you would
expect to pay you have to ask why it is THAT cheap.

Often the difference in cost is a linguistic barrier and copy and paste
programming.

I think India can really compete by charging 60-75% of what a project would
cost in the West and providing the work to meet those expectations.

If you are going to India for a bargain though you are more than likely going
to get burned.

------
gexla
Comparing nationalities is overly general and wrong. You should have stuck to
comparing hourly rates instead. The points you have made may apply to
comparing U.S. based developers just as much as they apply to comparisons with
non U.S. based developers. I have seen U.S. developers charge rates which I
know are below the level that a freelance developer would need to live on, and
I have seen these same developers be very flaky. A solid developer can charge
as much as anyone regardless of location.

------
Unosolo
Talking from personal experience of having managed off-shore projects from an
on-shore base the most significant challenges are:

\- misaligned interests

\- availability of information

\- control

\- security and compliance

\- communication

As far as "does it EVER work" concerned: it does. It doesn't work well though.
Most people can run, doesn't mean that most people can run as fast as Usain
Bolt.

My whole opinion at: <http://programmers.stackexchange.com/a/46934/12348>

------
tsunamifury
This post is so similar to my current situation I checked the authors
connections to see if he was talking me myself and my partner. I am a designer
with little code experience who tried to spec and design an app using Indian
developers. Needless to say its been a disaster and many months and hours paid
later we have a inefficient, poorly coded app which likely needs to be rebuilt
with an American team.

~~~
beachgeek
You'll still need to figure out how to spec your project.

Otherwise in your next iteration you'll still have an inefficient poorly coded
app, only you would have spent 3X times more money getting there.

------
bad_user
TL;DR - consultant writes about how his price is justified, then registers a
new account with HN and submits the story

------
TheRealmccoy
Very true.You would be surprised to know that even being an Indian I have so
bitterly experieicned this truth that you have described. Now learning to
program, so that I odnt get fooled completely next time.

------
Srirangan
We are harmless geeks. Who really feels threatened by _any_ programmer?

------
voidr
> the above is meant to apply to overseas outsourcing in general

I feel that this is a really arrogant attitude. I wonder if the author ever
heard of that part of the world called Europe for example.

------
ztay
"The thing is: I have yet to see a project done overseas at that sort of
hourly rate that has actually gone well."

The argument sounds like something Rush Limbaugh would say, "It's cold where I
live, therefore global warming is a lie!".

------
slimshady
biased and poorly thought through article

------
rajpaul
The situation described should never happen.

Did they pump contacts for recommendations on a good outsourcing shop first,
or at least ask for references and follow up on them?

I wouldn't even take my car to a mechanic blind.

------
McP
Please change the racist title. Racism towards programmers from India is a
problem and you're contributing to it.

~~~
McP
If downvoting, an explanation of why you feel this article doesn't contribute
towards negative attitudes towards Indian people would be appreciated. While
the title refers to the place, not the people, the implication is the same.

