


Does Outsourcing Programming Really Save Money? 653
itwbennett writes "In a blog post titled 'Why I Will Never Feel Threatened by Cheap Overseas Programming', John Larson tells the story of a startup that shipped its initial programming to India, paying $14 per hour, with predictably disastrous results. Larson concludes: 'I have yet to see a project done overseas at that sort of hourly rate that has actually gone well.' But in this not-uncommon tale of outsourcing woe, is the problem really with the programming or with unrealistic expectations?" The comments on Larson's blog post (originally titled "Why I Will Never Feel Threatened by Programmers in India") seem to me more valuable than the post itself.
Unrealistic Expectations? (Score:3, Informative)
From past experience, no. (Score:5, Informative)
I once did some contract work for a place that made the mistake of outsourcing a major programming job. My job was to maintain the outsourced code, and keep it functioning (barely) while the internal programming team worked on building a complete replacement from scratch, at half the cost, with the actual system requirements being fulfilled. I spent four months fixing bugs in deliberately obfuscated perl code, at consultant rates, because none of the internal staff they had hired was either able to figure out perl code in general, or willing to even try to sort out that mess. The outsourced programmers in question had the dodgy business practice of deliberately making their code difficult to read, and only including comments like:
# 16426-b
The code in question contained wonderful constructs such as pointless loops where a value would be iteratively divided by the numbers from one through a thousand, then restored to it's original value without being used in the altered form. I started the project with about 6 million lines of perl code, and by the time it was over and the replacement was ready, tested, and brought online, there were only 2 million lines in the outsourced code, including about ten thousand lines of comment code that had been added while I was working on it. I hadn't even looked at about half of the remaining code.
After the initial work was done (poorly), the outsourced programming company announced that their code maintenance fees were being increased, thinking that their poor coding style had essentially locked the client in, and left them unable to get help elsewhere. The only staff member the company had who was willing to make the attempt unfortunately committed suicide after only a month of trying. (Personally, I believe it was unrelated, but the other programmers there claimed she was perfectly fine until she started working on that code... after two months of it I could see why they would think that.)
So yeah, in my experience, outsourcing programming does not save money - if the company I did that work for had just had their own people write the original code, they would have saved a massive amount of money.
Re:Outsourced Programming Flaws (Score:4, Informative)
You summed the problems up very well.
I also found Indians say 'Yes' to everything even if they don't understand what you are talking about. That can cost days of lost work when you find out they didn't have a clue later.
Re:Faulty Reasoning (Score:5, Informative)
His point is that, yes, managers are going to be blinded by that $14/hour price tag and go with that route, but those projects usually fail. They are pitched for too many man-hours up front and they usually run over, and even then the result often isn't up to snuff. The result is that they give up and hire American (Western) programmers to finish the job at market rates. Thus most of the "value" of the overseas effort becomes a cost overrun, but the worst part is that time to market suffers because the initial specification valued cost over time to an unrealistic degree. A company can only get burned like this so many times before cooler heads prevail.
purpose of outsourcing (Score:4, Informative)
I've commented on this before, but there are GOOD and BAD reasons for outsourcing. All of these stories focus on the BAD (and they're truly horrible). It's easy to have schadenfreude about managerial disasters, especially if said managers fired you for this kind of project.
If you're outsourcing something that is your core competency, you're going to rot away to nothing. They will walk away with your secrets and become the direct solution provider in your space.
If you're outsourcing something that is creative or inventive in nature, you will fail. They are geared to bill hours, want to minimize their own labor by recycling solutions, and don't care so much about success because rework is still work.
If you're outsourcing something that depends on today's level of dedication and problem-solving, that's creative and inventive. But also, you will fail because you don't own those rare dedicated and problem-solving employees. They're predictably terminated by their managers, replaced with cronies or the next batch of diploma-mill graduates. If you get something good out of an outsourced worker, they will quit for a better job tomorrow and you'll have to start over again. And there's usually a no-poaching agreement to make it harder for you to groom and select the gems from their labor pool.
However, if you're outsourcing something that is rote, uninteresting, easily explained, clearly documented, often repeated, and does not rely on motivation or personality, then you have a chance. There's no reason for you to hoard and cultivate a set of employees who are best kept as fungible, as replaceable, as off-the-shelf, carbon-copies of each other as possible. Get them cheap, and get them to turn the repetitive process crank that you don't want to turn.
Offshoring the project is identical to local outsourcing, but all of the challenges of time zone and language and culture are just magnified greatly.
I used towork for outsourcing company (Score:3, Informative)
Comment removed (Score:4, Informative)
Re:Faulty Reasoning (Score:4, Informative)
That is because management sucks too. And has problems dealing with the fact that there are business critical people that are more important than they themselves are and are not managers at all. I firmly believe that a lot of outsourcing projects really are driven by managers unable to deal with the fact that the engineers are a lot more important as individuals as they are and far less replaceable. And better educated. And actually have a clue on how to do their job, at least the good ones. That engineers generally (and justified) look down on management types may also play a role.
Side note: There _are_ good managers. But they are even rarer than exceptional engineers, as there is no management education process that filters out the numerous duds.
Re:Agree (Score:3, Informative)
Unless you make the mistake of going with Quebec.
Re:Faulty Reasoning (Score:4, Informative)
They'd managed to create a search algorithm with a big O of something around n cubed. I set about rewriting it to get it down to N all while wondering why on earth Outlooks API didn't support this relatively basic feature. It was at this point that I discovered that the API actually did support it, however the programmer had written a wrapper around the API hiding the method in question, then re-implemented it in the train wreck of code I was removing. That was the last time I ever worried about competition from cheap outsourced labor.
Re:Unrealistic Expectations? (Score:4, Informative)
The problem is that $14 and hour, once management overhead and other costs come out, isn't even a reasonable living in India. Figure that after all the overhead and costs come out, coders are probably making less than $4 an hour. Last I checked ( I was vaguely curious about living there for a year or two at one point) average salary for a technology professional in an Indian city is around $25-30K a year. A lot less than even pretty depressed areas of the US or Europe, but still a Hell of a lot more than $4 an hour.
This tells me that most likely when you're paying $14 an hour for coders in India (I'm specifically using India here, because I have at least some idea what "reasonable" pay is there) you're not getting good coders by Indian standards, let alone any arbitrary external standard. If you want an average talent you have to pay average rates. So in India, if you want an average talent programmer, you're probably looking at paying the *programmer* (not the contracting company) $14 an hour. Now add overhead and costs to *that* (also factor that he managers and such are likely correspondingly better, and therefore more expensive) number and I bet contracting India isn't a lot cheaper than doing it in house.
Re:Faulty Reasoning (Score:4, Informative)
Re:Faulty Reasoning (Score:4, Informative)
You actually dress as a show of respect for others. It's an easy boost for your career with only a minor outlay. Good quality dress items only need to be cleaned and pressed infrequently and are actually more comfortable than cotton which dirties quickly and retains sweat and moisture.
Re:Faulty Reasoning (Score:4, Informative)
Re:Faulty Reasoning (Score:4, Informative)
lmgtfy:
Research:
1: Babiak P, Neumann CS, Hare RD. Corporate psychopathy: Talking the walk. Behav
Sci Law. 2010 Mar-Apr;28(2):174-93. PubMed PMID: 20422644. [nih.gov]
and the summarizing article from Time [time.com].