Hacker News new | past | comments | ask | show | jobs | submit login
The Real Reason Outsourcing Continues To Fail (lessonsoffailure.com)
102 points by gacba on Jan 21, 2010 | hide | past | favorite | 65 comments



This actually rings true to my experience. I've been responsible for several outsourced problems, and one common factor among them is trying to get Indian programmers and PMs to just be straight with me. I've tried being direct by telling them that it's okay to tell me if something is wrong or to give me a realistic picture of progress, and I get "Yes sir, I will certainly be very honest with you, sir," but nothing changes. It's a difficult barrier. I haven't figured it out yet.


The problem I've had with outsourcing is the treating of programmers like bodies. It seems like just when I've developed a good rapport with our programmers they are gone. Months of development knowledge, API knowledge, etc are right out the door.

My job requires me to train my replacement on our APIs if I leave. Over there, I guess it's not the same. When a programmer leaves I'm not given any notice. Just a new contact, who I then have to give the documentation, explain the work, and guide with the work. And this has happened to me 3 times in the last year.

Other than that, the guys are fantastic and good at their job.


Very few companies grasp the idea of intellectual capital. There is an amazing amount of value in a developer that knows a codebase backwards and forwards. Hard to monetize that though.


"I've been responsible for several outsourced problems, and one common factor among them is trying to get Indian programmers and PMs to just be straight with me.It's a difficult barrier. I haven't figured it out yet."

I might be able to help (I'll probably get downmodded into oblivion when some of my fellow Indians wake up but ... ).

The thing is, even in India the best (or even half way decent) programmers don't work for Infosys/Wipro/TCS and other outsourcing companies, who are probably the folks you are dealing with. The second tier outsourcing companies are worse. The good people go work for Google, or Yahoo or Microsoft, (and increasingly these days on their own startups) same as in the USA. The numbers of the latter are on the increase.

The number of really good programmers is as low here as anywhere else. I know maybe half a dozen after fifteen years of working in Bangalore that I would trust my project to.

Yet another (and the most important) factor is that all these outsourcing companies are heavily bureaucratic to a degree a Westerner can't imagine.

Most of it happens because the economics dictate overstaffing. If your revenue model is N people * m $/ hr, it makes sense to increase N as much as possible on every project. Anyone who survives for long in one of these places is by definition someone who practices CYA as an artform. Anyone outspoken and/or willing to admit mistakes will be ejected from the system very fast.

So yes, when you outsource crappy work to India (and most of the work outsourced here is mountains of legacy crap code no one in the West wants to work on anymore, often outsourced without meeting or talking to any of the engineers staffing the project, often on the basis of what some slick salesman put on his PowerPoint deck, yes then you get bad people.

And that is the truth. Your experience is valid and is the norm. Working on outsourced enterprise projects, without hope of ever working on a decent codebase, is soul killing and degrading. You can't expect decent developers or managers on such projects.

When someone replies "Yes sir, I will certainly be very honest with you, sir," that is a good sign you've got one of the bureaucratic ass kissers. "Sir" is always a danger sign. When you hear something like "WTF made you say that Peter? What are you really worried about?" you have a chance.

Yes there are sharp developers and managers here, but it is hardly likely they'll be working in bottom feeding enterprise outsourcing companies. (The director level people at Infosys etc are often very sharp people, which is how they conned you into outsourcing your project to them but that is another story for another day ;-) )

Please don't outsource to India (or anywhere else) before speaking to and attaining a comfort level with engineers and other team members who will be working on your codebase. By the time you encounter these "yes sir, I'll be honest sir" types, you are already lost.

My 2 cents. fwiw.


This is absolutely true. (Fellow Indian here. Why did you think you would be downvoted? :) )

Let me expand one reason. Bureaucracy. The engineers or even managers you talk to may not have the authority/incentive to be honest with you. The directive from above will be to sugar coat anything they utter.


" Why did you think you would be downvoted? :) "

This has happened to me before :-). I was called a "traitor" (to whom?) and "elitist" for saying something similar to this in another forum.

I don't mind. Karma (even on HN) is just a number on a webpage :-P


I sympathize - as a Chinese who is often critical of other Chinese, I've been called a traitor more times than I can remember. I've also been told that I was "no longer" Chinese, because I refused to side with "my people".


How do people from religious backgrounds where “karma” refers to something serious feel about the word being appropriated to mean a number on a web page?


I am an Indian, not sure about the relegious part. Karma at least in India/Hindu culture is tossed around more freely than in the west. Mostly associated to negative incidents. "I had a flat tire, its my karma", "Someone got kicked out of a job, he is reaping his karma".

You rarely would say "He has accumulated lot of good karma by doing good, I better see what he has to say". On HN, its a different story.


I imagine they think we'll get what we deserve for doing so.


I don't mind. Karma (even on HN) is just a number on a webpage :-P

Unfortunately, it is not just a number on HN.

A recent article here revealed a hidden algorithm that makes your votes useless if you drop under the global average karma/comment.

Thus it is more likely that populist opinions have comments shown higher while yours is likely rendered less visible by being grayed out.


So it's more than just a number on a web site... it's the ability to influence other numbers on that web site!


That would only be true if karma doesn't effect the visibility of your comment compared to the opposition.

It's an issue of freedom of speech, and unfortunately, isn't just another "number".


Referring to those with whom one should be having a discussion as opposition is one of the foremost reasons that we need karma to effect visibility in the first place.

"Freedom of speech" is not a guarantee that you can post some a comment on some web forum and have it be seen, its a guarantee that if you do, and it is, that your government won't punish you for it.


By that same reasoning, China has a guarantee that it won't punish you for badmouthing their government...as long as it's done in the privacy of your own home.

I realize that freedom of speech in the US doesn't apply to private establishments, but I would expect HN to hold a higher standard than say a conservative Christian forum.

And keep in mind that one of PG's goals is to reduce the herd mentality.


By that same reasoning, China has a guarantee that it won't punish you for badmouthing their government...as long as it's done in the privacy of your own home. America's free speech is a guarantee of nonpunishment _regardless_of_forum_.


That is incorrect. You are not allowed to cry fire in a theater nor are you allowed to say you will assassinate a public figure.


I'm not sure what you're getting at here.


What I'm getting at here is that you are trying to be pedantic know-it-all, yet you fail to know the details of free speech which you claim to be so knowledgeable about.

Just because I named 2 dubious uses of free speech, "slander" and "assasination", doesn't mean that the laws can't be twisted to clamp down on more legitimate issues: such as revealing corruption in the government which can be construed as libel in the US.

Overall, I am disappointed in the attitude of HN readers like you who take freedom of speech lightly.


I have a friend who is interested in link site karma systems who would probably love to read that - you don't have a link, do you?


To the point. I have met a few mind-blowing people who used to work at Infosys/Wipro/TCS a decade ago. Things have completely changed. Outsourcing/service based companies do not get any respect of Tier-I/II college CS people these days. Frankly, outsourcing is going to stay. What is going to change is the way things are done. These companies have already figured out ways to get things done from not-so-good people by making use of the right tools and process. This will mostly likely be expanded further where development of the most common things would be mechanical without any kind of creativity involved. And yeah, people on the other side would move on to building tools that enable it :)


One a related note, TED Talks: Devdutt Pattanaik: East vs. West -- the myths that mystify http://www.ted.com/talks/devdutt_pattanaik.html


My (limited) experience with Indian outsourced teams is similar. One thing that I've found helpful is to have at least one face-to-face meeting with the outsourced team as it tends to better "humanize" both sides of the interaction.


If this were true, then cancelling the outsourced projects won't help either. That's because even if the american companies build the products in house, they will only be able to get the average programmers to do for them since the really good ones are working for google yahoo microsoft or their own startup.

My point is that I don't think outsourced projects fail because "those who build them are not our best engineers". There has to be other reasons.


I think you ahve a point there. I am from Argentina, and from what I read about other countries, talent distribution is geographically fair, and globalization makes people act similarly in different countries. What is different, though, is that some pepole go to Latin America, Eastern Europe and India looking for lower costs, and end up buying cheap labor (low hourly rates), which might not be the same. Offshoring work does not mean that you have to look for low hourly rates disregarding productivity, ability to communicate, infrastructure and people care - you shouldn't do that in your home country, why do it overseas?


That's one reason I prefer outsourcing to eastern europe. There are fewer cultural differences - importantly, there's no cultural taboo about telling you you're wrong or that they don't understand.


I have real experience with this and my experience with Eastern Europe/Russia is not very good - with India it is abysmal.

Yes the cultural differences are less but in most cases the masking of the problem is still practised, albeit a little more efficiently , which means you find out the problems a little later, that's all.

As someone else pointed out - Good developers are few and far between , irrespective of country and/or culture.


The problem with not telling difficult truths is a cultural one, it's about losing one's face. I dealt with maroccan programmers for a while, and after 2 years got one programmer to be truthful with me. But boy took it time!


It might be better to give them an option to put forward good news about X, then gently coax the bad news out if you don't hear back.

Basically, say "If everything is going great, give me an email when you sign off."

They might be more comfortable that way.


Perhaps you should tell them to mail you anonymously


I have mixed feelings on this, as somebody who does outsourcing from a country which is not known for failure to appreciate subtle social dynamics. (Korean has six different forms of address based on relative rank? I could actually use six before lunch on a typical day at the office.)

On the one hand, we've had outsourcing projects suffer from cultural issues. However, they're not all related to the high PDI/low PDI distinction -- some of them you could shoehorn into that, to be true, but sometimes when any engineer swears that he absolutely will have a project ready by the end of the day he is just estimating poorly rather than being overly polite.

The number one problem we have had in outsourcing to a particular country is pervasive competence issues, followed by communication issues (egads, no, Babelfish is not an acceptable way to translate engineering documents), followed by a poor mesh in management styles which is exacerbated by both of the other two. We outsource to another country, where we have not had the pervasive competence issues. Things tend to go much better there.

I'm not going to name names, but suffice it to say they're both in that top 10 list and within a few points of each other.


The fundamental issue isn't that outsourcing doesn't work, it's that outsourcing is seen as a way to get cheap labour. And cheap labour isn't high quality labour.

Software development talent is highly mobile, and thus the best people are expensive everywhere in the world.

If you go to a cheap outsourcing company in India who can't afford talented staff, then why are you surprised when they produce poor quality code ?

Let's look at a market where local outsourcing works well: Web development. A huge amount of web development work in outsourced to small web development shops, both by large companies and small companies, and by and large the companies that outsource are happy. Because companies aren't outsourcing to cut costs, they're outsourcing because they don't have the in-house talent and therefore are willing to pay for expensive outsourcing options.

If they decided to go for a cheap local web development outsourcing option (plenty on gumtree/craigslist), they'd get worse quality and be unhappy about it.

Countries like India and China may well have separate issues due to cultural or language barriers, but they'd matter a lot less if the people being employed were talented in the first place.


Here's my hypothesis on outsourcing: the best people (no matter where they live) are hired locally, so if you aren't hiring locally, you're not hiring the best people. If you have prolonged experience with outsourcing, you'll notice that the better performers disappear after a while - they are being hired by someone local to them. On top of hiring the people who cannot otherwise find a good job, they might not speak your language well or at all, they are awake different hours of the day, and you are limited to communicating via telephone and webcam.

I find this idea of PDI particularly distasteful because (a) there is no hard evidence so far, and (b) it makes "us" look better. History shows that people believe a lot of dumb things when those things make them look morally superior.


I didn't find the PDI thing too bad. It's a relatively simple assessment of how people react to authority. Consider it a distance to autonomy. The lower the PDI, the closer the average person in that group would consider themselves autonomous.

Some countries value individual drive and an equality along all of the power spectrum where those in managerial positions are more like guides than commanders. Other countries have different cultures and values where those in obviously higher positions are deferred to and deserve to be treated with all respect their title confers on to them.

Neither is better than the other, just different. And in order to work better with these other cultures, each side must understand the values held by the other side and reach some sort of middle ground where we can communicate with each other effectively.

I do like your 'hired locally' hypothesis. It makes sense.


My take on why the best jobs and the best employees are local jobs and local employees[1] is modeled in terms of the bandwidth and latency issue of communications.

I did a lightning talk at the 2009 Great Lakes Software Excellence Conference using that theme. I posted the text and slides of that talk on my blog:

http://jerryjousting.blogspot.com/2009/11/joe-plumber-and-co...

[1] Distributed companies do work, but it is a lot harder to make them work well.


This is an excellent comparison. I can only upvote you once, but you deserve more.


"the best people (no matter where they live) are hired locally, so if you aren't hiring locally, you're not hiring the best people. "

By this logic people who get paid for working on Open Source projects like the Linux Kernel or Hadoop must be bad developers? They are distributed all over the world.


Good point. The best I can say is that life is complicated and inconsistent. If you are an attractive project, you will get good developers no matter where you and they are. People will make it work. But most people outsourcing are not sexy, high profile, open source projects. If you are a boring corporate project looking to pay bottom dollar by hiring elsewhere, you're going to get what you pay for.


I don't put much credibility in Gladwell's arguments, particularly since Greenspun's analysis: http://philip.greenspun.com/flying/foreign-airline-safety in which, among other things, Greenspun notes that Gladwell did not talk to any pilots.


Greenspun's arguments are bit a flippant, as noted here in the ending comments:

"To see just how much of a factor this is, look at how mishap rates plummeted after the introduction of CRM training at US carriers in the late 1970s/early 1980s. Prior to widespread CRM training, the culture at major US carriers was largely as Gladwell describes current foreign carrier culture: the captain's word was final, and co-pilots didn't speak up or contradict the captain."

Dismissing PDI out of hand as "already handled" is perhaps being disingenuous about the role it may play.


I haven't read Gladwell's book, but does it compare Korean and USA PDI and disaster rates, or disaster rates from a large number of countries?

If Gladwell has looked at a few more countries (and perhaps even ploted PDI against crashes) then he's done a much better job than Greenspun's comparison of "Foriegn" and "US" pilots.

If not, then the ball would be in Gladwell's court (so to speak).

It's obvious that Greenspun knows US air safety better than Gladwell though.


Gladwell is sloppy, but to be fair, in that essay, it seemed like Greenspun was out to avenge Pinker (MIT). It was more attack than criticism.


Sloppy evidence is far more damaging than no evidence. The fact that this author even brings up Gladwell caused me to stop reading. In light of Greenspun's argument that domestic pilots have orders of magnitude more experience, Gladwell's argument is worthless at best. But clearly, Gladwell's argument is worse than worthless, because now people are using it as anecdotal evidence in other realms. Even worse, the OP picked this anecdote because it is the same as his own hypothesis.


Yes, agreed. Gladwell is sloppy, it's just that Greenspun's essay was not where I discovered this fact. As far as Gladwell debunkings go, the philg attempt was the least convincing.


The author doesn't test his hypothesis, by comparing the success rate of outsourcing to a low PDI country.


An excellent point. As soon as I work for/with someone who outsources to one, I'll follow up. :)


No need. This kind of stuff happens even to people working for the same company, in the same building, in low PDI countries.

Outsourced projects fail for exactly the same reasons that other projects fail. The difference, if there is one, is that outsourced projects are more often set up to copy the exact features that are practically guaranteed to lead to disaster.


That bring up an excellent point: is there a strong correlation between high-PDI countries and cheap outsourcing? Even more un-PC: is there a correlation with low-PDI and high-GDP?


Outsourcing doesn't work because good software engineers are few and far in between.


Beyond that, management and accountant types make the assumption that everyone with the same job title is interchangeable. The result is that they take the work of local engineers with a substantial amount of domain knowledge (experience, which maps to higher salaries) and try to offshore it to engineers with no domain knowledge (inexperienced in the field of the application, and often inexperienced period).

Because of their assumption of interchangeability, they end up with a lose-lose model of costs. For illustration, assume a (local) domain expert takes 1 hour to do a job and costs $100/hour. Assume the outsourced inexperienced engineer only costs $33/hour, but takes 3 hours to do the same job because first they have to learn the problem domain.

When you outsource this job, it takes three hours and costs $99. Doing the math, this means the company "saved" $201 because the assumption of interchangeability implies (incorrectly) that the domain expert would also have taken 3 hours.

When you "insource" the job, it takes one our and costs $100. By the math, the accountants figure they left $67 on the table because the assumption of interchangeability implies (again, incorrectly) that the outsourced engineer would also have taken 1 hour.

The only way to win this game is to not play it.


actually, I feel you may have made the case for outsourcing.

In your example - it was a single task. Working with the assumption that domain expertise can be acquired on the job, the costs of doing subsequent jobs will be lower for the outsourced engineer.

The more times the same task needs to be performed by the engineer, the cheaper outsourcing becomes. Your example just accounted for the startup cost, which can be assumed to be a one-off*

*Is it that way in practice? at least in some projects, it is.


As others in this discussion have noted, there is a lot of churn in engineers at outsourcing shops, so the "start up" costs are forever.

The outsourcing engineers I have worked with have been smart, but inexperienced. [edit] The ones I didn't work with were smart, experienced, and substantially more expensive.

My gross extrapolation from my limited experience with outsourcing is that the engineers gain experience, but that experience makes them more valuable. Since they are smart, they use the outsourcing shop experience as a springboard into a better job, probably not in the outsourcing business or in a "higher up the food chain" (and thus more expensive) outsourcing shop.

Outsourcing is like having a perpetual intern program - all the training costs but never getting the benefit of that training with a long term employee.


This story reminded me of general situation in some software projects at large companies without any outsourcing. Clueless manager comes in and asks if this can be finished by Friday, developer already knows from previous experience that discussing realistic dates brings no good and just says "sure" and continues to develop at his own slow demotivated pace.

This article describes failure of communication which is not unique for outsourcing and can plagues any software project if contious attempts to avoid it are not made.


Absolutely. Projects fail all the time, outsourcing makes projects harder by requiring people to pick up a phone, so you would expect outsourced projects to fail at a spectacular rate.

From his list...

Buyer’s unclear expectations up front - This happens on every single project due to a lack of crystal balls.

Poor governance - I was talking to a guy from a Big 3 US car maker today who was griping about this very topic related to their US ops.

Poor communication - This is in every project failure report I read, US/UK or anywhere in the world.

Poor cultural fit - Have seen this on contracts between large and small companies, although it's usually not that much of a big deal.

Interests become misaligned over time - Apple/Google is a good example of this. Google/Mozilla will be soon. Plenty of All-American examples here.

Not mutually beneficial - Don't think this is just an outsourcing complaint either.


I'm not sure if I agree with the article.

However, I'm going to add some anecdotal evidence about the differences in cultures: when some coworkers interacted with Mexico, they would often say "ahorita mismo" (right now) when they meant "sometime in the future"... if you didn't know what they'd do, you'd have been very disappointed (stuff they said they'd do "right now" got delayed very often).


Haha, reminds me of a time in Croatia. A friend told me about a guy I would be working with. He said, "If he tells you it will be done in five minutes, that means he isn't going to do it."


I wish they had some data on Bulgaria and other Eastern European countries that are growing quickly in the outsourcing market. I find the conclusion dubious, but it is an interesting consideration anyway.


I wonder if this is why many foreign firms like to hire people who were educated in the US? Perhaps they have noticed that these people are, for reasons neither the employee nor the employer understand, better at dealing with western customers due to time spent with americans?


This article really, really rings true for my experience with outsourcing. It's also totally ignored by anyone above bottom-manager in Giant Immoral MegaCorps. And by "ignored" I mean "taboo to speak of".

One problem with outsourcing maintenance to folks from societies that, ah, respect authority to a great deal is that doing maintenance on any large code base will mean deciding that whoever did this the first time around Just Wasn't Thinking, and that you have to rip out and replace large hunks of barely-working, or slowly-working, or maybe non-working code. You just can't have any respect for the egos of those fools who came before you and wrote this drek.


This sounds somewhat plausible, but it has a flavor of "I'm just making this up, but it sounds okay!" to it.


While I'm not entirely convinced by the 'PDI Theory', I find it very persuasive.

That said, the article's thesis presentation of the state-of-the-industry with respect to outsourcing is very, very well and accurately described. I have seen precisely that sequence of events and communications.


"it’s going to be another 2 weeks because we need the new servers to arrive"

Believe me, this is totally false.

In India (at least around Delhi) you just call any medium size shop, place your order, your order will reach to your door within next couple of hour. Pay the person on your door by cash or credit card (through wireless credit card payment machine). I buy a HP laptop with the same way around 15 days back, where dell was asking for four days for delivery.


I've always been dubious of the value of outsourcing software development. Things like production are easy because after someone has 15 years of experience, he can't come to some developed country and make 20 times the money doing the same job the way developers can.


gripe: pie chart fail


very good read.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: