Does Outsourcing Programming Really Save Money?
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.
Seems to work ok.
Just because the overseas programmers suck (debatable, but let's assume) doesn't mean management isn't going to go for the $14/hr carrot.
I am very small, utmostly microscopic.
I've seen the work infosys and wipro do. They are the high end of Indian programing sweatshops yet everything I've seen from them stinks. They promise the world but don't deliver any better than a first year degree student could in any developed country. Except a first year student would be cheaper, has the same time zone, and speaks the same language.
Having been involved in many outsourced projects, a number of problems tend to crop up again and again:
1. Offshore programmers frequently lie about their programming skills
2. Competent Indian programmers tend to do fairly well if given very explicit instructions, but are at a loss if something unexpected comes up. They tend to be less adaptable and nimble than U.S. programmers.
3. It ends up taking longer than estimated, even for simple projects.
4. Hand-holding and rework end up eating up all time and money savings.
5. By the time an offshore programmer has skilled up enough to actually be useful, they leave for a better position. (Especially true for India.)
To my mind, outsourcing programming is a management fad that is (hopefully) already falling out of favor due to poor results.
Lawrence Person (lawrencepersonh@gmailh.com (remove all "h"s to mail)
http://www.lawrenceperson.com/
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.
If you pay someone by the hour, they will work as slowly as they can...
If you pay someone by project, they will cut corners to finish quicker.
If you pay someone by lines of code they will write bloated code.
All of this is even worse when the developers are halfway round the world and you can't keep track of them so easily, and when you don't have sufficiently clued up people on hand to inspect the code they have written.
http://spamdecoy.net - free throwaway anonymous email - avoid spam!
I work at a company that does outsourced programming for for US and EU companies. I have been working at this for the last 5 years aproximately (always in programming & analysis roles).
I am really amazed at how much our clients undermine their own goals. I understand that cost is what drives programming jobs to my country - but I still have to see a really successful product come out of this. It would be difficult to find a single cause for this, but all of the following are at least partially responsible:
1 - Low wages.
2 - Lack of good programmers getting involved: some of the programmers you can get for the lower wages are great, some suck. I've seen companies taking just anyone interested to fill programmer positions for such jobs (you can train them, right?). Getting involved in the selection process may help prevent this.
3 - Lack of trust in the the outsourced team: you can't think of the outsourced team as a bunch of mindless morons and expect them to care about your product. In those cases in which the outsourced team was a very good team, it didn't make the slightest difference because people was told what to do, and not to think - which makes hiring inexperienced people a pretty attractive alternative.
4 - Giving more importance to cost & time, than to quality: what would anyone expect to get, when quality is secondary to time & cost? This is a huge way to undermine your projects.
5 - Communication: communication is harder when people is spread all over the world. IMHO you need to compensate this difficulty by having some tool to help you keep in touch. In my current company, we use skype, and we keep in touch at all times with the client, which really helped solve this particular problem.
6 - Planning: planning is much more difficult when delivering work to someone who is not right at your side.
5 - Etc, etc.
diegoT
I think you hit on something, even if you haven't realized it. Companies don't hire first year students. The numbers have been dropping for almost a decade now. Companies get it into their head "why deal with college hires when we can use experienced off-shore". Well you can't keep a pipeline of experienced programmers in the US unless you make the investments in the next generation of programmers.
I was the "Down" in Downsized, I was the "Out" in Outsourced. That made me down and out.
I wanted to be the "Laid" in Laid Off but but my wife gave me "The Look".
Ethics II Axiom 2. "Man thinks." B. Spinoza
The main problem I've had with Indian programmers is that a lot of them don't really understand english (even though it is the official language of India)
English is an official language of India, and not the primary one. The primary official language is Hindi - you know, their native language.
I realize it's vastly preferable that they speak English if they work for you, but you're implying there's actually something wrong with Indians who don't speak English, and that's absurd. There's nothing any more backward or stupid about an Indian who doesn't speak English than there is with a Canadian who doesn't speak French or a Belgian who doesn't speak German.
Don't practice the cultural ignorance and arrogance that befalls other Americans. I think you're smarter than that.
for how much removed they are from the system. The owners that is, not necessarily the managers, but the owners set the policies and tones. Adam Smith lived in a time when it was safe to assume the capitalists would live near the means of production and thus suffer the consequences of their actions. He didn't see satellite communications coming. For what it's worth Karl Marx talked about this; e.g. how capital owners would be insulated by pitting labor in one economy against another; but all anyone can remember about him is that a bunch of dictatorships borrowed his books for rhetoric...
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/