Why I Will Never Feel Threatened by Programmers in India Cheap Overseas Programming

[UPDATE: To all those who got here by clicking a link entitled “Why I Will Never Feel Threatened by Programmers in India”, that title has been retired as an unfortunate misfire on my part: much of the conversation was lead astray as though I meant to single out India in particular, and it landed for some as having racist connotations.

It is now titled “Why I Will Never Feel Threatened by Cheap Overseas Programming”, which much more aptly captures the meat and message of this essay. And now without further ado…]

I got a call from a friend of a friend the other night. It was a fellow with whom I’d talked 11 months ago about a project he and his partner were looking to start. We established then that I wasn’t the guy for him, that I was likely too expensive for their big-dreams, small-means budget.

Fast forward to present day: their project is still not launched, it’s still not right. They’ve paid for something between 600-700 hours of development with a firm in India, and they should have launched 6 weeks ago.

Sure they’re only being charged $14/hour for that work, but I think the Indian firm is, as the saying goes, making up for it in volume. And that’s to say nothing of the time our heroes have spent proctoring the whole process: in his words, they’ve got to be constantly super explicit in their instructions, or it comes back wrong–then then have to spend more hours getting it fixed (this is but one instance of why I am suspect of the hourly model in my industry).

“I’m wondering if you’re available–my partner says we just need an American programmer to get in their and clean up a few things to get us out the door, we figure it would take the right person 10 hours, instead of 50 or more with these guys.”

Outsourcing programming came in to vogue as a cost-effective strategy, what, 10 years ago?

For a number of years in my industry there’s been a sense of not-necessarily impending doom, but something akin to that due to the rise in outsourcing programming work abroad, most prominently to India. Hoards of smart people, as the alarmist vision goes, willing and able to do highly talented technical work for a fraction of the going rate for US programmers. The labor force here in the states can’t possibly compete, and what savvy, responsible company could possibly pass up the opportunity of such cost-effective globalization?

The thing is: I have yet to see a project done overseas at that sort of hourly rate that has actually gone well. Version 1 of MonsterMarketplace was first done overseas–took 4 months, billed for gobs of hours including a lot of testing and QA, and crashed predictably under the strain of campaign traffic. (By contrast, my complete rewrite of the front end was done in 4 weeks–at peak times it produced about 4% server CPU utilization, never crashed, and had correspondingly faster page loads.) This was my first inkling that the “outsourcing problem” wasn’t all it was cracked up to be.

My second close look at the outsource phenomenon was the code base for Zowzee. As I discussed in the tale of building and launching SpotlightDenver.com, rebuilding it made more sense than trying to extend the $12/hour piece of work (to this day I’ve been too polite to ask how many of those $12 hours it took–I do know that my work was vastly cheaper, faster, and smoother).

And now this. That makes three out of three instances in which outsourcing abroad turned not that great, if not outright regrettable1. This is a small sample, to be sure, but still servesto bolster my confidence as a US-based programmer.

Reclaiming our Competitiveness

So how is it that we can compete with programming talent overseas, with figures like $12/hour stacked against $125/hour? My experience leads me to believe that US-based programmers can be the sound and “right” choice for development projects, and we don’t even need to resort to protectionist arguments for supporting our local economy & talent.

I think we can observe a few generalizations which, while they may not give due credit to the exceptional firms overseas, serve to counter the equally general notions that hiring offshore talent is an economical no-brainer.

Consider the idea that the rock-bottom hourly rates creates a certain cognitive dissonance in decision makers. If I tell you that your job is going to take 500 hours, but don’t worry, it’s only $14/hour, you might think it a god send that such a rate is even possible–you might even think it not worthwhile it to consider US based options at $50+ per hour. Sure, the quote from India might be a little inflated, but it couldn’t be that inflated… right? Turns out it was in my 3 examples.

But even if multiplying hours times rate gives you a real bargain, there’s a very good chance the hours term will balloon. If they get something wrong, they can fix it with 20 more hours of work. But don’t worry, it’s only $14/hour. Again, impaired judgment based on what a great deal you’re getting makes this palatable and thus probable: you wouldn’t tolerate it if you were paying a substantial hourly, and besides, you’re already in 500 hours, so what’s a few more? I think it’s safe to presume that overseas firms understand this reasoning and mindset very well, and at very least appear to exploit it accordingly.

Our heroes’ need to be super explicit in order to get what they want reveals another major advantage that local programmers have: nobody wants to have to babysit their programmer with constant direction and correction. Communicate the overall vision of what you’re trying to create for your customers, and any programmer worth their salt will bring their A-game to solve it from that shared understanding. The net result is a project that is completed faster, racks up far fewer billable hours, and saves you headaches and time.

I’ve noticed a number of other reasons to think twice about off-shoring:

real-time communication made inconvenient and response times made long by the time zone difference,

a reduced sense of accountability, commitment and partnership inherent in the long distance relationship,

and text like “Link will be sent to your mail for to update your Password.” sprinkled throughout public facing parts of the website, which just doesn’t give your customers the best impression of you and your business.

These all come with the turf but seem seldom considered: the allure of cheap labor seems to trump these potential problems, or they are unimagined all together.

The good news is that each of these reasons constitute a means by which US programmers can justify their value as a worthwhile and economically sound alternative to outsourcing.

There’s fruit to all of this on more idyllic grounds, too: just as the threat of overseas outsourcing would tend to discourage mastery of programming here in the US (what’s the point when you’re told that someone else is going to eat your lunch?), the notion that the fight is more fair than typically envisioned may as well encourage it.

I believe when the myth of cheap, abundant programming abroad is shattered, there is a lot more reason for the next generation of talent to take on and excel at a craft that creates real value.

[UPDATE: There has been a lot of comments and conversation on this topic here and elsewhere. See the response to many of the consistently raised issues in the follow up post, Cheap Overseas Programming Revisited.]

Over the years I have outsourced a number of projects to India for programming. The key is to have the deliverable COMPLETELY wireframed by a US programmer THEN sent to them for the coding tasks. THEN you return to the US for touch up and publication. It saves in the realm of 20%, not the 80% the outsources price publishes. Also, leave ZERO creative direction to India. You will get a big blue eye in the banner that makes no sense for the company but India may justify “it shows you are very watchful”…. uh, not what i was thinking.

You can outsource to save money, but only once someone stateside essentially blueprints EXACTLY what needs to be done. Then touched up.

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.
It really is the case that 50% of everybody is below median — doctors, programmers, judges, …!

I think anyone that has outsourced a project unsuccessfully would agree. Unfortunately, as you stated, that low hourly rate seems to hypnotize the client, which is natural. I think this problem will work itself out naturally. No matter how many times you warn someone of shoddy work overseas, they won’t be able to think long-term, so they’ll pull the trigger, which will coincidentally cost them a whole lot more in the long-run.

But isn’t that always the case? Isn’t there always a cheaper option in any product or service? It’s always going to be up to the client to choose whether he/she wants a high quality product or a “piece of junk”. I think having those two options is actually healthy for any ecosystem.

Well, am a programmer from india. And i agree that there’s an element of truth to this… For the most part what is sold as outsourcing is either creative time management or the mundane parts of development. But on the other hand, i have been in the IT industry here for 5 years now, and the reward system just isn’t setup to encourage taking responsibility for that kind of work. I have many hypotheses as to why, but have given up trying to find the right ones. Instead, I see that most of my friends, who seemed to be able to handle those responsibility have moved out of the country. Hopefully they will return to the country sometime in their 40s and try to change it.

While I agree that there are those who don’t quite “get it”, there are those who’re on par with the rest of the world in terms of skills and productivity and creativity.

Just like one cannot say that (all) Indian Programmers are the best , the opposite is true as well. At the same time, the outsourcing business for sure, breeds mediocre programmers who’re OK with maintenance type of tasks.

From what I know, only about 10-20% of work outsourced require innovation and creativity with good Design and architecture skills. Rest of the work requires just grunt work that a lot of American programmers are not interested in.

there are firms in India who work only on product outsourcing — these have the best talent usually.

I think you hit the nail on the head on this one. Granted there are plenty of success stories in India (I’ve heard of many myself), but one has to truly embark on outsourcing to India like it is a minefield. Many provide great service, but “bad apples” are definitely more rampant in India (not just in this industry). That is coming from an Indian, by the way…

One unfortunate thing, is that many times individual freelancers in India are high quality and willing to work for less. Firms can be hit or miss as can freelancers, but I have heard that individuals usually are worth the cheaper price. Good article, though…and hopefully you are right. I’m just learning HTML and CSS so I don’t want to be discouraged before I get too far!

I agree with you and my 8-year experience as an enterprise software engineer can corroborate your story. These examples were not limited to “substantial programming projects.” The Dev-USA team at my company has had to fix/rewrite every project outsourced to our subsidiary in India. Communication was always the issue. I’ve received design & functional specifications scribbled on used lunch napkins, but I’ve outperformed the Indian team because of my face-to-face and common-language communication advantages. Yet when it comes to India’s underperformance, I think that “time zone difference” is an easy scapegoat for product & sales teams who cannot communicate with their technical counterparts. I wonder whether the technology/globalization combo will find an answer. Perhaps technology will provide a means for better business–technology overseas communication, or maybe product managers will emerge in India and the US will be relegated to host satellite offices for sales & marketing staff. Let’s also see whether the current startup model of the technical product team will carry over into the enterprise space.

But paying peanuts and getting monkeys isn’t unique to outsourcing. Most good programmers know their worth, and often compete at equivalent market rates – eg. I’m sure that you can find shit-hot Indian programmers, but they will charge $100 an hour or £500 a day and compete with their peers in the US/Europe. Similarly, I know UK agencies that will build and maintain a website for a total of £500 including creative design, coding and hosting. Basically, good programmers have nothing to fear from cheap programmers.

As people have pointed out, it’s not the Indian part of the situation which is core to the issues being described, it’s the outsourcing model. Irrespective of whether the work is going to India, China, Vietnam, Russia or anywhere else with considerably lower labour costs, the additional overhead due to communication will take back much of the cost savings.

However, at “scale” (i.e., large numbers of people and larger time periods), outsourcing is an attractive option. Yes, the work needs to be better defined, yes silly mistakes will occur due to language or cultural issues, but many companies are well aware of this and still outsource – with a suitable level of success to continue the investment.

Not for one second do I buy into the argument that a top tier developer from the sub continent is inherently less skilled than their equivalent in the US or any other so-called 1st world country.

I am currently a westerner in India, I have just sent a job back to the west because I needed it done fast and I needed it done right. However, I have done similar jobs here in India for around 20% of the price – but I knew beforehand on these jobs all the specifics I required and time wasn’t so tight.

I see the Indian outsource problem similar to the Japanese car problem of the 50s and 60s. In those years the Japanese produced what would now be considered pretty rubbish cars. Yet they had invested heavily in car manufacturing and eventually the need to make it work ensured they focused on quality.

There are major problems in outsourcing to India right now – but they are surmountable in certain projects. However, long term, I believe that Indians offering outsourcing work will become more proficient through necessity.

This article instills a sense of comfort but I believe that comfort will be short lived as India learns how to provide real customer service and (through current errors) will see the need to deliver top quality products.

@Ash
Great insight about possibly short-lived comfort as India improves–to be clear, I hope that realizing that the game is not already lost on price alone (as has been a popular narrative) will serve as more of a rallying cry for local talent to deepen their craft. It is not meant as an excuse for complacency.

I am from India and I agree with you partly. The part where you talk about education and degrees is especially true. But at the same time there are some really good programmers in India who will also charge you rates which are similar to their US counterparts.
On the other hand mediocre employers search for mediocre programmers and rates are the only thing that matter to them.

Unfortunately due to our limitations and we tend to generalize things based on nationality.
All the Indian programmers I HAVE KNOWN are mediocre and therefore all Indian programmers are mediocre seems to be a hasty generalization.
“Why I will never feel threatened by mediocre programmers” seems to be a better title.

I would say its about the firm you choose. Do your research about the past history of the firm. If needed talk to a few of their previous clients.

I would disagree with what the title says. India really has a very very high programming talent and that is the reason why all top teach companies like Google, Microsoft, Facebook, Dropbox, Twitter all have atleast a handful of Indians working with them.

I used to run an outsourcing outfit till six months back with 8 programmers. I grew increasingly frustrated when I had to teach and explain even simplest of the things to my fellow programmers. I eventually fired all of them and wound up my business.

The problem with majority of the Indian programmers is that they are in the job only for the money. Nobody gives a rat’s ass for solving a problem. People just want to CODE. Nobody wants to create a solution.

And then there are people who want a Facebook clone built for $2000, so there are companies that milk them.

As for me who I couldn’t fathom it anymore to churn out apeshit work for my clients so I decided to call it quits. Now I work alone as a freelancer and am more happy.

In my 10 years as a programmer I have worked with programmers from all over the world and I feel passion in programming is what makes a difference and it has nothing to do with nationality. In India programming has become a commodity though.

There is some truth to this. A long while back when I was doing projects, I got a projects 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 typical $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 of they want a project manager or an architect who can work with them on architecture/ feature set selection they say no 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 coders. Since you were not able to clinch the project – which I believe is bad salesmanship – your “I told you so” rant is based on a massive leap of faith that you could have finished the project on time which I am simply not buying.

Some great arguments made against outsourcing your software to India but there are bigger trends happening we need to consider. The trend towards short-term thinking where we buy that cheap Made In China product because it is way less money now but then have to rebuy the same thing 3 times when if you bought a higher quality item (clothes, etc) you would still have the original. In the long term we may not be saving any money but as a consumer society we are thinking more and more short-term.

We have seen this happen in many industries, automobile manufacturing for example. But what happens is that the developing countries actually do tend to finally improve their quality. It takes time, but when they become the world wide leaders in making cars, plastic things, etc because they are cheap, they tend to actually learn, refine and adapt to increase quality to the place of competing and even surpassing us in the West.

I believe the same is happening in software. I run an outsourcing company that could be charged with some of the things you have stated above. Similar to the rates charged by junior vs senior developers in the US, sometimes you put juniors on the project that bill cheaper per hour but they rack up way more hours and it ends up being more costly and the product is of less quality. This is a fact of life. Get the cheap lawyer for $200/hour instead of the $400/hour lawyer and whether you end up saving money or not is hard to determine long term.

But we also have taken on many projects done by bad developers in the US where our team has been able to rewrite and fix and then maintain everything at a fraction of the cost. Our team has been way more responsive and serving the customer with a good attitude opposed to the typical “I am hot shit” attitude of many developers in the US. So there are definitely case studies on both sides to consider.

A lot of this argument comes down to the rote/memorization approach to learning that is changing in India/China and other countries. This education system has brought out developers that aren’t able to think for themselves and apply concepts towards solving problems creatively. But with that changing (many colleges using case study and project based work as their core curriculum) I think we are seeing that India and other countries will really be able to compete.

So maybe don’t panic, but be worried long term. There is a major economic shift that is happening in the world right now and software is just one piece of it. It has happened yet and I agree with many of your points but it IS happening slowly but surely.

I meant: If you call it cheaper & lower skilled programmers vs more expensive & higher skilled programmers this would remove the racist context and your argument would get attention for the right reasons. Sadly you sound like just another loon shouting “American programmer good” “Indian programmer bad”.

@Matt Freeman
You have said right. I’m a computer science student from India. The people here, take computer science just as branch and mug up things- It’s not their fault, the system itself is faulty. I took it because of interest, since I have been programming since 14. And this is the main reason why most of the engineers are so #FAIL. The scene is not only in computer science, but every other branch of education.
Adding to the things, some local authors produce pathetic textbooks and people buy them, instead of buying those specified by the University, which actually give knowledge instead of those local ones- which are written exam point of view.
These exam point of view textbooks are like- you read a week before the exam and you get 60-70% and after the exam, whatever you studied flies out of your mind.

This doesn’t mean everyone from here is like that for example me. I don’t buy those local books and advise my friends to do the same (which often fails) and hence, my knowledge is much better than my friends’. They consider me the god of programming, but I’m not one I know, there might be much better programmers than me.

You can replace India by any other outsourced destination and you may have good or bad results. My experience with India and Vietnam has been just the opposite, but like any work that you farm out to be delivered at a distance, you have to spend extra effort in specifications. If you assume the remote party is going to fill in the blanks, you should expect to live with the results.

The other problem with is the way people in your examples approached outsourcing. Not only did they want to outsource, they also went with the lowest rate. No good tech firm in India or Vietnam charge $12 or $14/hour. I am not surprised your friends got the results they did. If they had gone with someone in the US who charged 50% of the going rate, they may have gotten the same results. I bet when they saw two Indian firms one charging $30/hr and one charging $14, they went with the $14/hr firm. In my experience you should hope for a 40% or so saving on your overall project, accounting for extra preparation on your end. If you try to go 10X, you deserve punishment.

You are right about hourly rate based model in general. Your headline on the other hand is ridiculous. There are a number of programmers from India gainfully employed in the US. Many rotate between India and the US. Many of them have founded technology companies in Silicon Valley that have gone on to be successful. Saying you are not going to be threatened by developers in India is like saying you are not going to be threatened by good developers no matter where they come from. Never is a long time. Whatever helps you sleep at night I suppose, but that headline was unnecessary.

I am on both sides of this coin. I have outsourced projects that have turned into nightmares. My first experience the developer took two weeks to get an authorized log in going with symfony (not even sure how that was possible, but he managed it). I hated the late hours waiting and explaining in painfully exacting detail that I wanted the button to be centered and so on. I gave up. I turned to American developers hoping that the higher rates and better hours would be the answer. I did all the interviews and testing I could and found what I thought was the right guy. At $85.00 an hour and very little wiggle room with the budget I was confident that this was the right choice. At first I was impressed, things moved quickly, jira was updating so fast that first week I could barely enter things in to keep him busy. Then I get that first bill. I was shocked to be honest. I knew we had been working quite a few hours but 60 hours during one week almost made me cringe. I thought to myself.. no no.. this is what it takes this is quality and speed. So I powered on. Next thing you know I get another invoice this time for 65 hours but I was absolutely sure we did not have that amount of time put into what was laid out the previous week. Again I told myself, well there were some tough items in there. I powered on. The project went live and after a couple more invoices that seemed to be questionable I said enough. I was basically getting the same production out of my american developer at 4 times the rate as I was the indian company.

I then decided to try a different Indian developer thinking that at least if I am going to waste money on contractors I would rather waste money at 1 / 4th the cost. This time around maybe I got lucky. Maybe I am the exception. I could not be happier after a good deal of time my projects get completed on time. No over billing. No wondering where the developer is or if he is going to show up at all that day. I do not get billed three times for the same development. So the point I am trying to make without dragging the story out to far is that there are great developers everywhere. American, Indian, or whatever. The responsibility and the blame goes to me as an owner and a manager for letting whoever I hire not preform or meet expectations.

My advice no matter if you use India or America.
1. Estimate the project before hand
2. have the developer estimate how long it will take him to do specific task.
3. have an agreement that if a task runs longer than estimated someone should eat that cost. (if they want to work for you and make money they better estimate very well)
4. do not depend on any one developer holding the key to your project. If they walk or they do not work out your screwed. (this is only if you are strictly using contractors)
5. have incentives for completing projects early and on time
6. never be dumb enough to pre pay for development time (that has fail written all over it)

I am sure there are tons of things I can add to the list but those are some of the things I have learned. At the end of the day though developers are only as good as the direction given to them. If you do not give a clear direction ( and yes sometimes you have to be more clear with some one who does not speak the same language) then you are asking for misery no matter where you outsource to.

You have hit the nail on its head. This is a great post. I am from India. I have worked as an engineer in this outsourcing business and I can say that every word of your article is true. Have your read the “Infosys, TCS, or Wipro?” post by an ex-employee of an Indian outsourcing business. If not, here is the link for you and others: http://susam.in/blog/infosys-tcs-or-wipro/
. This article has gone viral in India. It has a lot of relevant points about the issue you are pointing out in your article.

You should understand that when you are paying dirt cheap rates, you will not get perfect quality software. The amount of cost-saving is so rampant that managers here want us to fix the product by duct-tape and deliver it. They usually underestimate the project schedule to get more outsourcing work.

I know a lot of hackers all over India. They are brilliant, but sadly the education system teaches us to run after the crowd. It’s a rat race.

I’ve dealt with Indians a few times over the past year and I agree with pretty much all of what you have said. Regarding the guy who thought India was like Japan – I disagree; I talked to an Indian programmer over here in Britain and he said the culture over in India is that programming is only a career stepping stone, after a couple of years they get promoted into “management”, they don’t see it as a long term role…The good programmers either go to work in a big foreign company or move overseas.
You’ll find lots of developers in the west who have grown up first and for mostly loving software development just for the fun of it when they were kids – and then making a living out of it later on in life. This is why they are exponentially better than there Indian counterparts.

I think this is not only limited to programming only but other areas as well from my experience. My experience hasn´t been that severe, but I´m doubtful I´ll outsource anything again to India etc due to the communication problems. I even read how business culture in India works yet I found it very daunting and communications took a lot of energy alone. Some brag about they got high academic rewards etc but now I´ve learned academic achievements means nothing on global scale due to the high variations of quality. All that matters is what can be proven which one have done and doing right now.

I can easily say it´s absolutely worth 2x the price minimum to hire a western guy compared to indian outsourcing etc.

I don’t think the world needs to worry about India overpowering Western software development skills. Indians are too concerned about scheming, ripping off and scamming to spend sufficient time copying and pasting from Rose of India.

I am yet to see any good Indian software. They certainly are incapable of making volume market consumer software, because if they were they would be into it already.

They will cheat and scam themselves out of the marketplace soon enough.

Compartmentalizing programmers based on nationality is such a myopic view that it perhaps does not deserve a response to the individual. I’ll try to tackle the issue of disparity in skills that’s raised by the article and comments.

I’ve had the opportunity to work with both Indian and their allegedly superior western counterparts. My observation has been simple and practical – most programmers suck, Indian or not. If you think all Americans are awesome BDD, OO programmers, stop living under a rock.

Yes, Indian programmers come cheap but they are not a bit as snobbish as a lot of westerners I’ve interacted with. For reasons better known to the individuals, I’ve seen people act like the royalty. Perhaps, and justifiably so, because of feeling threatened by the cheaper, equally skilled, Indian programmer.

I don’t have a conclusion or a grand vision of what should be done but I think non-outsourced s/w sucks as much as outsourced.

Great write up. I think to get good ROI on an overseas outsourcer you either need to be on the ground building a great team or recruit talent like a crazy person (it does exist but its hard to find).

I find it interesting that outsourcing prices in India keep rising (due to demand), but the quality of work remains low. It’s certainly approaching the point where it is never worth it. Will be interesting to see if they do get better at problem solving and communication.

I think part of the problem is growing up in a completely different environment, different values, education, entertainment etc. Then remaining in that environment and being expected to think and produce like someone in the USA or other hiring countries.

I am from India and I am a programmer. I have only ever worked for product companies and have avoided the outsourcing sweat shops like plague.
Why?

Work is really really bad attracting really really bad talent.
Hence you get the ~15$/hr rates which imho is too much to pay to for the quality of programmers you are getting. As an aside even in India you still have to shell out fair amount of money for good quality work.

You get what you pay for!

The average salary for a really good fresher in India is about 6L/month or about 60$/hr considering (8 hr work days) and for good experienced devs its about double bringing us to 120$/hr.

So next time you spend 15$/hr you can expect poor quality coz thats all you have paid for.

Only good news is that you will find a LOT of people here in India who are willing to work for 15$/hr – its an option that is hard to find in the US because of the very high cost of living.
So if you are lucky you may find those rare gems who are good and are willing to work for less due to circumstances.

Well I am not really surprised. But you can’t really generalize that for every Indian programmer. You see these outsourcing firms hire the bottom 20%-30% percent of a class of graduating engineers as a matter of HR policy (I have a friend who is HR at one such very well known firm). Why? Because, the smarter ones wouldn’t stay with them for long. Secondly, not all of them are computer science grads. Many are from mechanical, chemical, civil, industrial and other engineering streams who are given anywhere from 3-6 months of training and put to work. So don’t expect miracles from those guys. And for most part, the work is do is pretty mundane some of them involve running a testing tool every hour filling the data on to a spreadsheet and emailing it to the client in US.

You will find smart programmers at the Indian development centres of firms like Google, Microsoft, Oracle, HP, NetApp etc. Or you will find them in US universities doing an MS or PhD

Good American/European programmers have nothing to fear from good Indian programmers, because there is a severe shortage of both. That is indeed why good Indian programmers will eventually end up charging similar hourly rates as good American/European programmers. Given the substantially lower cost of living in (not all parts of) India, the big winners in this game are indeed the good Indian programmers.

Mediocre American/European programmers, on their side, have everything to fear from mediocre Indian programmers. There is absolutely no shortage of either, and if the results are going to be crap anyway, why spend more on American/European crap than on Indian crap?

So, yes, a good number of programmers in the US/EU will end up — and have already ended up — unemployed, as it is getting increasingly difficult to be incompetent AND still earn a good middle-class income, if only, because employers will go for cheap crap instead of expensive crap, any day of the week. The big losers in this game, are therefore, indeed, the mediocre American/European programmers.

In India, like any other place in the world, you get what you pay for. If you were right not a single software company would have set up their shop in India. BTW, a non Indian programmer caused NASA to lose a satellite.

The problem which you have tried to point out is correct but not of particular community. People want cheap labor and dont realize the cost development is higher in no. of hours billed. My only opinion is if customer knows what he wants and do a sample work with company. He/she can get an idea as to what they are getting into. IMO :)

I’ve unfortunately had similar experiences with a pair of projects outsourced to India. The problem is, in some cases, without external funding or a limitless credit-card, programming work in Australia (and the US I’m sure) is simply out of reach.

In some ways I feel that getting a functional (but not great) project online for $5000 *now* is still preferable to waiting 1 – 2 years to get the capital together and paying local programmers $50,0000 for a *perfect* job. Sometimes the important thing is testing the concept cheaply, then improving it once you’ve gained traction / revenue.

That being said, if I had the money available, I would absolutely hire a local (i.e. Aus, USA, Brit) team, just for the ease of communication, lack of back-and-forth and general frustration.

I’m an Indian businessman running a domestic Indian business for which I hire/outsource tech work locally. I also do the same for other functions like visual design, writing, sales, marketing, accounts etc. I’ve come to realise, much to my surprise, that the stupidest people in India seem to work in IT. They invariably have a far lower competence level (combined with the highest opinion of themselves) in what they are doing than the people I hire for any other kind of work. Hard to figure out why.

I feel odd saying it, but you are right. The worst thing about outsourcing your work is, that if the firm is cheap, its probably because its not worth more. You’d have to deal with people who can’t communicate well in English, are not aware of any modern advances in technology, and worse, will still lure you with their cheap prices.

That said, I have worked with some programmers/designers outside India, who were as bad, if not worse; and I have also worked with programmers from India, who were brilliant.

Overall, I think it comes down to how well are you in finding the right guy for the job. Its the same as hiring someone for full time job, in your own city. If you don’t do full research on your side, you are bound to end up with incompetent programmers.

I have worked with both Indian and Russian teams for a few years (in aggregate). Both were with US consulting companies that have a minimal heavy hitter US geeks fronting for the team that writes the code. While I certainly worked with some outstanding software engineers in India, overall the Russians are more ‘sophisticated’.

Were the projects successful? Yes. One of them was delivered under outrageous deadlines and it is quite likely you have used it, as the client is known world wide. (Can’t name. Media.) This was with a Russian team. The projects with the Indian team were mostly for Wall Street clients. Projects ranged from trading desk apps to matching engines, etc. (Not kiddie web apps.)

You are not worried because you are small fish and doing small fish projects. The pattern that is being established is precisely that of a very few ‘native’ engineers trothed before clients in board rooms fronting at “tech lead” or “architect”, etc. to put them at ease. But typically, this means management and it is not very fulfilling for geeks (at least not for me).

Hourly rates are not as low as you think, but obviously lower than 125/hr.

There is also technology transfer to consider. Back in early ’00s, I remember the line about “only grunt work” being outsourced, but later on when I got an inside view (with the Indian backed firm) I realized that the FINANCIAL INDUSTRY had systemically transferred knowledge and expertise to India. One of those excellent Indian engineers, in fact, created his own FIX engine.

I am very happy for my fellow geeks in India and Russia (and South America). But I must honestly note that I am very concerned about my fellow geeks here in USA. There is a political aspect to outsourcing, and we have been negligent (us geeks) in not having organized and having an input in this process. Every other field has professional associations, but us geeks are like little children …

I don’t see how US IT industry can provide a ‘career’ for US software engineers if we continue to gut the lower to middle rungs of the IT track. People are not going to jump from grad school to managing these teams.

I have worked with varied results with programmers from India, Israel, Ukraine, and now the Philippines as well as plenty of Americans. I am an American developer myself and have bid against outsourced projects from within the US time and again. I have found many American great developers and also some poor ones. Anecdotally, I’ve rewritten several systems for clients all built in the US. (Well, one in the UK.) Last year I hit a point where I needed help to take on larger projects — help that would not evaporate if I could not pay $80+/hr to sit on the bench in between jobs. I was doing well but not well enough that I could hire a few 100k guys.

I found it easier to grow my business and find good developers in the Philippines — so much so that I relocated, perceiving correctly that I could add more value by sharing my knowledge working with them directly and raising the practice level to encompass TDD & BDD and various things I’ve learned over the years about how to be effective. It’s not a panacea but I’ve built an international clientele now and have some great developers who I am proud to work with and who could hold their own in top shops and who don’t cost a fortune. I am able to pass that savings on to my long standing clients and deliver more value. We’ve been able to tackle projects that just could not be justified if I had to bill full ticket domestic rates.

It can be done. There are cultural issues at work with India that make it more challenging in some respects. I have even received an inquiry from an Indian entrepreneur in India about outsourcing to the Philippines! I think the Philippines is easier to work with but there is always a learning curve. No free lunches. Western management onsite can add a lot of value.

Man people are not that creative in india, very rarely do you find really good programmers that love to code, Others are in this industry because they may have done Comp.Science Engineering. Or may be because there are more jobs in here. Thats it, most want to serve 9 to 5 in there jobs. But What they lack in talent they try to make up in volume or prices. But wait software is an active creative pursuit, and prices dont drive great software , but great minds do. That doesn’t mean that indian programmers cannot be great, it just means that they are rare just like anywhere in the world. You have to learn how to find great developers. There is a good treatise on how to find great programmers here : http://blog.c42.in/tag/offshore

So what you mean is that since a bullshit company in India was horrible at a programming task so every other Indian company has those mundane programmers for a single reason they that they were not born in the United States and ask for less price.

its a rule of 80:20, in any company/project there will be Many bad programmers and few good ones. you will pay $50+ for all in a US and pay $14+ for all in India
At the end more likely than not, those 20% pull the project through. do the math, its safe bet to outsource.

if the project is small enough for few developers to complete, does it makes sense to outsource? don’t be cheap!

When did it dawn on you that if you outsource you will have to communicate !!! that’s the first thing you should be ready to do, if you haven’t expected that then you sure deserve what you are going through. There is something called risk mitigation before embarking on any project, if you don’t list all the risk and mitigation plan, sure you will fail.

@Aj
Talk about lying. The average salary is NOT 6L per month. That comes to 72 lakhs per year. Very very few people earn that much. $60 per hour is very high for Indian standards. $6.00 is more like what they deserve.

Hi John, nice post and congrats on the getting onto the top of Hacker News!

That being said, I feel like nationality has little to do with the topic here, and has the potential to come across a little racist.

I’ve got programmers and designers I work with in India, Pakistan, the Philippines. The guys I’ve found are badasses, very professional and teaching me stuff all the time. If and when I become successful, it will be due in large part to my overseas team.

I’ve also attempted to recruit horrible programmers and designers before. Sometimes they come from these non-western places, other times they come from America or even from my hometown.

There’s jokers everywhere. It’s up to us as technical project managers to screen them out and only hire good contractors and firms.

Are the country-specific issues when it comes to outsourcing (i.e. India vs. Philippines vs. Pakistan)? Many folks say yes, in my experience it’s negligible. Really it’s all about the individuals.

I think this post would be stronger if it was pointed at the general issue of outsourcing, not nationality. Cheers!

They can’t even solve basic problems in society in India, so what makes you think they can develop good applications? I’ve been to India and it is a disaster. If you took a country and tried your best to screw it up in every way possible, you still wouldn’t have a place that is as screwed up as India.

While what is said in this post is true to a large extent, I think a large part of such outsourcing-failures starts with the party that initiate such projects. Believing that a project can be done 4 to 10 times cheaper in the same quality, isn’t that a bit naiive? And no matter where in the world you hire programmers, it’s alwys a matter of their track record and reference. By having a look at what work they have done, what clients they had, speaking to past clients etc. one could easily find out if a programmer / company is reliable and can deliver things as promised.

There are indeed well qualified and skilled engineers in India. But finding them isn’t easy and obviously such talents won’t work for 14$/h at a low-quality company.

It’s a matter of luck whom you find. For instance, I’m a programmer from Poland whose current job is to clean up a project made by an American programmer who charged more than $100k for his project. The software more often breaks than works and is contained in a single 400 kB source file. My client keeps complaining about his experience with local programmers almost every time we talk over the phone.

There are good and bad programmers everywhere. The reality is that if you’re not picky enough you will manage to find a bad programmer everywhere.

(and my experience with outsourcing to India is similar to yours, but I believe there are good programmers out there, they just don’t work for $10/h writing budget websites – this would be such a waste of talent)

First of all let me give a bit introduction about myself. I am a Indian Programmer now here in U.S and have been a programmer since age of 13 and now I am 27. I was a freelancer before in India and Now work for a giant fortune company. As a person worked on both side I totally agree when I am in your shoes but there is other side of the coin too. It has not been always that bad results are achieved outsourcing to India but I am stating why outsourcing results into bad results.

Expectations:
1. I have had clients with which I already knew are going to fail but if you want to waste money. why not? I had this guy who wanted to beat Facebook within 6 weeks with no business contacts, no social circle of friends that would even register on the website. Result: he got frustrated with the team!!!!

3. They expect the programmer will take care of whole and sole testing. They forget that testing is a part of software dev life cycle and it should be done by experts. Whatever you say a developers testing will lead to failure.

4. They expect that no of hours invested should be equivalent to the amount of work. Programming is a art, some place you may be stuck and something may just get done easily. Hours just make client insecure and make them think programmer is fraud.(Due to this I had this whole project costing with delivery date defined).

Client interference:
This is the biggest headache for programmers in India. Client wants to be on top of the progress being made or either comes up with some new ideas/requirements which they like asap to be there in end product. Sometimes its possible to add it, but sometimes its a nightmare and screws up the whole product.

Implementation Freedom:
Sometimes people just don’t understand between something good and something bad. If a programmer thinks something is not good for performance etc just because something looks good is not a reason to have it implemented. Some clients just tell the requirements and leave upto the programmer to choose everything from programming language to deployment servers and they really get good results.
E.g One of my client said I have xyz business and I want you to give me ideas and implement it. If the idea is good and I like it I will pay for implementation. We progressed like anything in this project and even client was able to generate a huge amount of money.

Security:
Most of the people in U.S I have met are loyal, but as clients in U.S get to some fraud programmer in India, we too got to some fraud companies that did not pay us. So it does not depend upon country or outsourcing as per my knowledge.

another thing that I have seen with some clients is they start the work, get some work done, and then stop the project and get to some other company and keep on shifting. They do this saying we did not like the work but already have source files as for this minimal work we don’t feel problem sharing source files. But these cons just terminate the project get to some other company for next little part.

Ultimately what I have seen is, clients foster their own failure and those that know how its done get work done really good. I have not just seen Google, Microsoft, IBM, Intel etc doing RND in India but small companies in Silicon Valley have their Research and development these days in India and here too some fail and just get development work done in offshore because they fail utilizing the real power of outsourcing.

Just to conclude, I am not saying you are wrong but there is problem from both sides and those who understand that, get better results and obviously big revenue too.

About 10 years ago one of the white haired old guys said to me “We’ve been outsourcing forever. In the 70’s and 80’s it was to IBM. Only lately are we going to India. What matters is that you stay sharp. Good people are ALWAYS in demand”.

They can’t even solve basic problems in society in India, so what makes you think they can develop good applications? I’ve been to India and it is a disaster. If you took a country and tried your best to screw it up in every way possible, you still wouldn’t have a place that is as screwed up as India.

Wait–hold on a sec, Enzo. And anyone else who thinks this this missive is intended to be a dumping on India.

This is just an essay on why cheap, overseas outsourced programming isn’t the dream/threat that it commonly perceived to be (dream for managers, threat for programmers). India holds the reputation of being the most prominent instance (and was the source of my 3 experiences), so for better or worse it got position in the title as an icon of the phenomenon.

As a “victim” of offshore outsourcing, I never felt threatened by any of the offshore employees. Rather, the management who developed and executed the plan scared me lots.

I met my offshore replacement. Smart young man, quite intelligent. Totally swamped by what he was expected to take over. I mean, compressing years of experience and development into approx. 1 month?

I learned from former co-workers that my replacement soon left for a higher paying job. I soon got into a better job. I believe the high level executive manager who pushed the plan was promoted “sideways”. Who won? Who lost?

My replacement won, by getting a better job. I think that I won; I certainly got a better job (less stress). My former employer did not win, my former co-workers didn’t win (but not because of my departure).

@Enzo
You don’t have to go back there. I’m pretty sure they’d be happy not to have racist, bigoted, idiots like you around. You’re a drain on whichever society you’re a part of. Pretty sure you don’t contribute anything of value.

My experience with outsourced projects has also been pretty poor. I suspect that this is largely due to information asymmetry. You do not meet the developers, you do not see their previous code, if you do meet anyone they will be very good and will work on your project along with 9 other projects. Most of your work will be done by developers you will not meet because the employer intentionally hides them from you. You can only find them in the svn/cvs/git commits.

On average the best people are not working for these companies. To take India as an example, large companies such as IBM and Oracle have set up shop. These employers likely have the developers you wish you got when you hired that company. You will not unless you are very diligent and reasonably lucky.

I know someone who is currently working for IBM who has outsourced one of the worlds largest mining companies (top three) entire system to India after IBM won the contract.

It will not be delivered.

No one is even thinking about outsourcing to India anymore – this article has to be from three years ago, I thought everyone knew this already – same reason all the call centres are coming back on shore.

Seriously – outsourcing came into vogue 10 years ago? The trend was fully established by the early 90s. Certainly by the mid-90’s, I’d been paid rather nice sums to help 3 different projects recover from code-writing outsourced to India and/or the Phillipines. All to save money.

I too have had many negative experiences with asian outsourcing firms – on occasion things have gone right, but it’s more luck than anything else. I find the process largely pointless and just as expensive purely because to get it right, you need to specify everything to the letter with much more detailed specs and often work to set up appropriate environments/security etc if you also have onshore developers working in tandem.

The amount of BA time required to wireframe/spec everything to the letter ends up costing more in most cases! Even then this is the best case scenario because even then I’ve seen plenty of projects still come back full of problems!

When hiring developers one of the most important attributes I look for is the ability to problem solve and show initiative – i.e. anticipate problems and communicate them (hopefully with potential solutions). This is precisely what you DO NOT want outsourced developers to do as they are normally unaware of the bigger picture or larger business problem their work is impacting. Every country and every industry has different practices and different expectations – there is no way an outsourced developer can know these quirks so their ability to make decisions and show initiative is basically non-existent even if they are talented. And (as far as I’m concerned) 75% percent of being a (good) developer is the ability to show initiative and make intelligent decisions – I just don’t see how a disconnected company across the world is ever going to be in a position to do this

I have worked on many projects with outsourced development teams and it’s a terribly inefficient. With all the stress that they have cause me, it’s probably taken a couple of years off my life. Asking a simple question takes just 24 to 48 hours for an answer. If I was working with a developer in even the same time zone it would be as simple as a phone call or walking over to their desk to get an answer. I also be believe that foreign outsource groups are not trained to develop maintainable code. They deal with all requirements or bugs by writing as much code as they possible can to solve the requirement. They don’t look at the problem as a whole. They don’t take the time to find a more elegant solution to the problem. They don’t care the least bit about writing maintainable code. They could careless about simplifying the code base. They have no sense of ownership. They will writing a rat’s nest of spaghetti code, and they do this on purpose. To attempt to lock you into developing with them by making the code base so complicated that you begin to believe that only they can understand it. Otherwise you are in a constant battle with them attempting to keep things under control. Be very wary of outsourcing your development. If you are going to use outsourced development expect that your project will not come in on time and on budget, event at $14 an hour. Speed to market is key. Simple code is stable and maintainable code. Find developers who understand that, even if it costs you $100 an hour.

Oh! get over these outsourcing posts …it is so Passe … It has matured over the years, and people do get value .. it is not that software products dont get screwed up if they are developed in US … When you are outsourcing you are doing business with another country, and that needs strategy, and not throwing the work over the wall just cos you are saving Money .. There are a gazilion success stories of outsourcing delivering value.. and if you do it right you definitely are add at a advantage ..

I have 10 years of experience working with both American & non-American (Indian, Asian, Mexican, etc) background people. No one can write and give that American programmers are great. I have seen highly paid US Consultants ($150 – $200 per hour) doing nothing except show off. You do the work, they take the credit. They will dress decently, talk big big jargon and huge dreams but zero on delivery. At the same you can see even less paid consultants who know what they are talking about and you will be really amazed by their knowledge & creativity. The same is the case with non-Americans as well but only that, you get low quality only for low cost.

I did a development for my site from an Indian based developer. He was a college graduate (with not much real world – IT experience) who developed the site with the basic functionality. Was I satisfied on the final outcome? May be not, but I expected the quality when I went in because of my constraint on the cost of the project.

My sincere advice to you is, Don’t fear about somebody anywhere in the world who is providing a shitty service than you even if it is for less money. BUT DO FEAR ABOUT SOMEONE WHO IS GIVING A MATCHING OR EXCEPTIONAL SERVICE FOR LESS MONEY THAN YOU. HE SHOULD BE YOUR REAL THREAT !!!

I don’t think you understand. He’s not dissing any race, he’s simply pointing out what millions of former WalMart shoppers realized years ago: products sold at sharply reduced unit costs don’t have an incentive to produce a small volume of high quality units, but instead a large volume of low quality units. Simple economics are at play: the workers know they got the job because their time is worth less, and they have every incentive to live up to expectations!

I’ve seen some of the most horrifically awful slop come from the ‘low cost’ developers! Not that I’m perfect, mind you, but simple things like knowing how to loop an array or use math/date functions really can work wonders. Even knowing these things, when paid by the hour, what’s the incentive to use them when you can pad your income now and in the future by forgoing good design?

Saying you are not going to be threatened by developers in India is like saying you are not going to be threatened by good developers no matter where they come from. Never is a long time. Whatever helps you sleep at night I suppose, but that headline was unnecessary.

Hey Ernest,

Spot on–I’ve edited the title of this post, the original was a misfire and had a lot of this conversation go in a nasty and unintended direction.

If company is charging $14/hr, the developer will probably get $7/hr. This is way too low even for Indian standard. For me, this is equivalent to falling for Nigerian prince mails and complaining that all Nigerians are bad.I have seen trend where some companies outsourced to us because they can not find good resources even after paying competitive price in US. They handpick the developers that contracted company offers If you are outsourcing to any company because it is cheaper, buy a lottery ticket on the same day you sign the contract because the odds of success are same..

Reading this article , I could not stop myself from thinking what the great Edward R Murrow wrote , about 60 years back , “We hardly need to be reminded that we are living in an age of confusion—a lot of us have traded in our beliefs for bitterness and cynicism or for a heavy package of despair, or even a quivering portion of hysteria. Opinions can be picked up cheap in the market place while such commodities as courage and fortitude and faith are in alarmingly short supply.”

I could not think of any better & succinct explanation of this essay & the writers bend of mind . It just breaks my heart to see how little things have changed in Murrow’s great country in over half a century..at least w.r.t software business .

Let’s consider briefly some of the charges of the writer –

• “they’ve got to be constantly super explicit in their instructions(Requirements Doc??)” – English , for the record is probably the primary reason software companies are turning to India & not China to send some of their work . That said , any sane development team would definitely insist on a frozen requirements document . This is(should) not be true just for Indian development teams but software developed anywhere . The cost of not doing this, as we all know is close to 60% of all software projects failing .So , unless the author’s friend is a big fan of “Inception” , I do not see why this should be any different .
• “Right person 10 hours, instead of 50 or more with these guys..” – The author doesn’t explicitly say if his friend is willing to pay more for the “right person” irrespective of the geographic location . I have hard time believing all the intellectuals are confined to a particular geographic location in the world .
• “I have yet to see a project done overseas at that sort of hourly rate that has actually gone well” – Wow..that’s by far the most sweeping statement that I have heard/read . Obviously , someone from the authors organization did not take the time or effort to understand or do their due diligence while handing out work . Again , I refuse to buy the argument that morons & slackers are confined to only certain geographic locations .
• “I do know that my work was vastly cheaper, faster, and smoother” – I wonder why it was not given to the author in the first place . History perhaps ?

Finally ,let’s consider the author’s proposition that anyone who works for per hour rate lesser than his , is incompetent . And if that be true there are awful lot of incompetent people in authors resident country .
There seems to be a creeping fear of doubt in authors mind on the validity of so many things that he had long taken for granted & thought to be unchanging.

Oh..I think I need to wind down now …I have to get back to writing some “crappy code” for an “outsourced” project .

Your article does not conclude your point very well and it rides a little on rhetoric. Your argument is broken because it follows this path – ‘I am a good programmer. Three projects I know where outsourced to India and sucked. Thereby all projects that go to India should suck and I cannot be threatened by it.’

Ignore those drawbacks and the article does raise some valid points.

@Anand’s comment on the reward and value systems are valid. They are elements that one can work on to encourage thinking.

@Bryan’s comment summarizes how we got here. If you leave creative thinking out of the planned work, don’t even expect it. You get what you pay for. It is also difficult to work on a model where your customers are situated miles away from you and there is no way you can walk over to their desk and say ‘Hey George, do you think feature A can add productivity to common use cases that you work on everyday ? I can add that into the software.’ Instead the series of events are likely to be…

Monday: You send an email
Tuesday: George has no clue what you are talking about
Wednesday: Clarify your statement over email
Thursday: George is busy. He forgets the email
Friday: You send a reminder and work it out over a phone call.

There are companies in India that can build products out of scratch for you and deliver the results that you expect. But not for 14$/hr. Like I said, you get what you pay for.

I did a project with internal staff at the other end of the world from the same international company. They were also a bit cheaper, but due to the time zone difference, we lost lots and lots of time.
Also, when I was supposed to do an intervention at a cliënt, I waited 4 hours because a server went down and India was still sleeping.

Just because you’ve come across some terrible Indian programmers – and believe me there are a heck of a LOT of them – doesn’t mean that American programmers are somehow automatically heroes in comparison. I’ve had the distinct dispeasure of having to work with quite a few ignorant, narrow minded, bigoted American software techies myself.

The previous company I worked for used to outsource generic scripting jobs to india. We had a few onsite developers who would guide the guys in India.

We had to train them for hours and hours on the system. At the end of each session we would ask if they had any question, never did anyone ask anything. You would think everything is going well…

Nope, After a few projects it was obvious that they never got the training. What was worse, was that they never got better at it either. It was like a different person was doing the same thing everyday, we would get exact same quesitons coming to us by email.

In the end, we decided to forget about “right-shoring”, and just gave them repetitive data entry tasks which the performed extremely well.

@Enzo
Why did you then come to India? Who called you. You guys outsource your work to India for your own profit. We do not call you. If you have talent at you place, utilize it. But do not write this shit for the Indian people and India.

I think its unintelligent to say that all apples in a basket are delicious and all oranges in another basket are rotten.
In every group, you have good and bad, so dont be so quick to say that all american programmers are genius and offshore programmers are not.
If you are not threatened by the offshore programmers then it is good news for you but dont put down the group by which you are not threatened by.

My experience with using cheap developers, both from the US and from other countries, has not been good. I have been out sourced out of a job. It was poorly planned and they used the cheapest place they could find. The developers came to the US, saved their daily meal stipend, ate rice in the hotel room then went home and quit. The programmers were constantly being replaced by a new batch as their firm was just a launching pad for a better job. No programming task can survive that kind of turnover.

Cheap and run like crap is the problem. One advantage of hiring in the US is you probably talk to the people who will actually code the project and it is easier to keep tabs on them due to the same time zone and the ability to drop into their office to see them working.

Really looking over the contract, seeing some other work they have done, getting a good feeling in the meetings and having solid goals is important. Knowing you will have to do more planning work because you out source it is key. Most think you can run it just like the developers and QA is right down the hall but that is just not possible.

I would never outsource the core product of the company but many do and it tends to fail as the business lore is not anywhere near the developers and they tend to make poor guesses as to how things are done. The business people think everyone should just know how things run.

You get what you pay for. All of my experiences with work done in other countries have been poor but I have never picked who was going to do the work. I have worked with a lot of really crappy US developers and numerous contractors who just look to extend their hours. I have worked with a number of solid developers who are full time employees of a company meaning they have a vested interest in the place surviving and they are looking to learn the business to make them a more valuable developer.

I have yet to work with an H1 Visa developer that I felt was an excellent developer. Most of have mid-level at best and have had a chip on their shoulder about why they are not thought of as better. Lots of school knowledge but less practical knowledge and the code showed that. They used techniques just to use them not because it was the right thing to do. Lots of cut and paste, few comments, hard to maintain code. Same type of things I saw from US contractors. Write it and move on, basic lack of ownership when it was done. My experience so far, that could change if I meet the right person.

Companies are making a lot of poor choices. I ask when I interview if a company has used out sourcing. It once was many were thinking about it now I find many have tried it and are hiring to bring things back on-shore to have tighter control and better investment from the programmers. I am sure out-sourcing works for some and it a great way to separate dollars from idiots with wild ideas that most US programmers will not touch – the next Facebook etc. I just have not seen it work yet in my experience. That is not being racist, that is just speaking from what I have seen in my career. There are great developers everywhere, I just have not met many US or otherwise.

Your comment is published. I agree that all have the right to comment, I’m not censoring anything but spam (turns out though that Akismet does a great job already!).

As for the useless and racist discussion, I find as you probably do Enzo’s comments most unfortunate. Indeed, my original title for this post was misfire and I can see why some have taken it as a sign of racism–this was never meant to single out India.

Anytime you challenge a distinct group of people, it comes off as racist. Usually those coming to defend so vigorously know that there’s some truth to the point. It might not be that all Indian firms are bad, but as someone who’s worked directly with 6 of them (some consulting firms, some employees of my company) I totally agree with the article – I have yet to see any of them succeed. Quality, turnaround, accountability, etc., have all been issues.

I used to work for a US-based major retailer who have an off-shore office of 1000’s of employees doing all sorts of things – HR, IT, payables, etc. In the cases where the tasks are very defined and documented, things work fine. IT is not like that, and they’re contemplating ditching their offshore IT because they’ve gotten next to nothing out of them in 5+ years.

Other points of the article have nothing to do with Indians per se, but with logistics – if the time different is 11.5 hours, a question in the US afternoon is going to take 12/24/48 hours to resolve (depending on how much back-and-forth needs to occur). Doesn’t matter if it’s software or business or sales or whatever, time different is a major point. No amount of WebEx is going to change that.

Well, companies will continue to outsource specially when they find better professionals than in the US, for example I’m from Argentina and here there is a huge number of outsourcing companies, why? in our case is because not only is cheaper but the expertise level here (as well as the level of education) is one of the bests in the world (if you have any doubts look it up) I have worked with Americans my whole working life, and even tho you find the occasional good professional, they are mostly people that never think outside the box and hardly ever surprise with their performance. Down here is pretty easy to find 20 year olds geniuses that will code anything fast and perfectly done. So before you state things like you do in your article, make sure you know what you are talking about and that your vision sees further than the limits of your country, there is a whole world out there ;)

I work for a small company on the east coast and we have an office in Bangalore India. I’ve been working with them for over three years and here is what I have found:

1) They are very nice people and are always polite, I always love when they visit over here.

2) About 20% of the staff over there (there is over 100 programmers there, just 20 here) are very sharp people, they would be excellent programmers here. The other 80% are not good at all and they really bring down the quality of work.

3) I also see the communication problem listed above (the amount of detail that must go into the requirements is ridiculous), and I think this is due to the fact that you are working with a team that is 12+ hours ahead of you, and you can’t speak face to face.

4) Turnover there is very high. Most of the sharp programmers either leave or demand more money both which reduces the cost savings.

I have a close friend who works for a very large US based tech company. Her company is outsourcing to China and her experience is very similar, minus the turnover (I guess that they want to work for the big companies that are well known).

@Anon
As someone who works in the call center industry, you are wrong about them coming back to the US. We’ve opened 4 new sites, all offshore, this year alone. All our network people were laid off and offshore ‘talent’ hired. Developers laid off and two or three new developers from India hired, at less cost than the US based developer.

After having worked with and for an indican company that makes its money from paying its indian employees an misserable salary i couldnt agree more with you. Schedules were never met, comunications were complicated becasue of the time zones and the customer was never happy.

BTW: I went there myself, and saw something that immediately made me advise management to break off the whole experience: obviously, the Indian shop we’d outsourced to, also did work for a French constructor of nuclear power plants. Open and unprotected on a table in an unlocked, open & unmanned office lay Catia drawings of… some nuclear power plant’s primary cooling installation.

Working for a major US software company I had the same experience. We didn’t actually outsource code to India, we outsourced our testing functions to a company owned labor force in Bangalore. The results even for testing were horrendous.

Test plans needed to be written at a level of detail so exacting that it almost would have been more efficient for us to execute them ourselves. Test plans were still often not followed or understood to any degree and thus many defects were missed.

Time differences and communication issues seemed to eat up any savings versus an affordable, domestic in-house testing staff. The whole thing was a big failure.

I remember one time getting the test DB back from an Indian company and finding most of the columns full of NOT NULL.

He hits the nail on the head here; you have to be incredibly explicit and even then at least half of the time they will get it wrong, or program it at such a poor level as to make the solution worthless anyway.

Spot on. We have had very similar outsourcing experience with Vietnam. Everything has to be spoon fed. Massive communication problems. Poor sense of quality. They will to the most crazy things with the code, which makes it really unmaintainable and fragile. I don’t think it comes down to real technical talent. A lot of the guys were smart, but it is a lot of cultural aspects which cause trouble. In the west there is much stronger culture for taking initiative and think independently and that is quite important in software development. Another aspect is quality. The attitude outside the west is often towards just make it work. This works great for prototyping and such but not for commercial software.

I work for a company that spends a significant amount of time rescuing these kinds of outsourced projects. 90% of the projects we take-on that fall into this category happen to coincidentally be outsourced to firms in India. “Making it up in volume” must be the reason for this too.

When we are approached with a *new* project that has been untainted by 1-3 previous development firms and the client balks at our rate, we usually quote the following axiom:

“There’s never enough time to do it right, but there’s always enough time to do it over. Correct?”

I do agree with the author of this post. What do you expect when a mechanical or a chemical engineer moves to the “IT” company after his graduation. It would take ages for him to follow a program from the start to the end.

John,
The problems you are rightfully pointing are all technical problems, in due time all this problems will be solved someway or another, the costs will slightly increase (increase twofold in India will still mean lower than half cost of US programmers), and then the difference will be only about money.
It has happened over and over with other technical jobs (car manufacturing moving from USA to Japan and now to Korea) and it can happen very fast indeed.
So at some point US programmers have to cut down costs on programming, or face unemployment.

You are absolutely correct. My first solo project was for an acquaintance that paid gobs of money to a local consulting firm for a web application. It was in purple and black(!), crashed constantly. I re-wrote it and have become the clients go-to guy.

I do not think you are a racist and in fact I agree with you and other posts on here. I have had bad experience with programmers in India but I have also had bad experiences with programmers in the US. I do think comparing is getting off topic a little bit since your post is clearly talking about outsourcing to save $$.

The fault of the bad results is that of the manager, not the employees. If you don’t manage your teams, then you will get a bad result. It doesn’t matter where they are, or who they are. Try having a painter come and paint the inside of your house if you aren’t there. They could be the best painter in the world, but they will still do a crappy job unless you are there to manage.

Did the employers of the Indian contractors visit in person? Did they have daily meetings reviewing the project? I bet not.

This won’t be a popular thought, but it’s something I have seen over time.

There is a tendency towards stereotyping of others to allow for easy decision making. This isn’t to say that a person may hold those stereotypes for every member of the group they stereotype. They will amend for specific cases. There are positive stereotypes as well, and that’s really my point.
I’ve worked in a Fortune 500 company and in startups. We didn’t have outsourcing in the startup, there was no money and it was obvious you either did the work yourself, or it didn’t get done. I got my first exposure in the fortune 500 corp I worked in. To my endless astonishment, there was a belief among many managers that there was a utopian land, elsewhere, that held endless PhDs of chemistry, physics, computer science, etc. All of which was theirs for the asking and all of these poor people were in such economies that they would take a pittance as payment and produce genius level work. It didn’t matter, you could hire the local dog catcher to program your project and it would be amazing, not to mention cheap!! Well, people are similar in many respects, regardless of where you go, but hope springs eternal in management.
Yes, there was a time, at the outset of outsourcing, where the top talent was charged at a low rate you and got amazing talent for your money. Over time, this evened out and we got mid range talent for low cost. And now, as most of that talent has moved on to getting paid what they’re worth, many of the outsourcing firms offering bare bottom rates are also training the local dog catcher to write the code.
This is regardless of country. The US, India, China and now Easter Europe and Brazil. All of these have had a heyday where talent was cheap and things were great (as a manager). If you managed a project, you could get it done fast and cheap, and it was good. You could break the “pick 2” conundrum programmers like to quote so often. But then demand rose and the prices went up for good talent and you had to find the next uninformed genius to write code for you.
As long as there are developing countries and developing economies, there will be cheap talent somewhere that is better than what it charges. But that will keep changing, since you can’t put that sort of money into a developing economy and not have it develop. There are most certainly those that would take advantage of both sides (the manager who hires cheap, good talent. And the manager who attempts to make money by volume, and not quality), but in the end, I’m curious if this sort of focused economic boost is good or bad for the target country? I can’t tell. The stories I hear from friends from India are that some areas have leapt forward and the techies that are demanding (and getting) better salaries are dragging the rest with them. I also hear that this widens the class gap such that the areas that were poor are now destitute, and the areas that are growing are insanely flush with cash. I have heard similarly of China, with the large, planned housing projects for young professionals going unused, and the backlash of the tech economy yet to occur. I am curious to see… But already I have worked with PhDs from Warsaw and have seen an excellent level of expertise, at low cost. How long can that last? I’ve no idea. But one thing I very strongly believe: the tech economy will pull these slower agrarian and manufacturing economies forward in these countries, whether they like it or not. How does that effect the US? What happens when the talent pool shrinks and outsourcing moves on? Where do those economies go from there?
I’ve gotten off point, but I’ll restate it; there is a belief held among many in the US that there is some other place in the world that is smarter/better/hungrier than we are. This is probably true, but in addition to that is the belief that that will always be true of the same place. There are only so many rocket scientists in any one place. When they are all happily employed, you can’t train the janitor to compete for their job.
Sorry for the rambling, I hope it was helpful.

Consider the reduction in risks when outsourcing to other sites. Say, for instance, the Dominican Republic, where there’s a generation of programmers experienced in working for telephony multinationals (Orange, Claro), usually with a very fluid English speaking and writing skills, and with the States much closer to the Time Zone. More expensive than India, to be sure, but still significantly cheaper than the States, and good enough to have several programming intensive companies dedicated to programming outsourcing.

I worked on a large software development and deployment project at a large Australian Telco.
(Rolling out peoplesoft and a number of java applications for provisioning, all running on Solaris.)

The decision was made to use one of the big Indian based firms to do all the development, and I was immediately shocked at the sheer number of people who were logged into the servers working on the code and using the environment, all using about 10 shared user ID’s. I never really could figure out how many unique people had access to the servers via the shared accounts, but it was alot.

Sure the sheer number of people you got for the amount of money you were spending was impressive, and the code was being written fast, and there was lots of it.

However, One day I logged in to assist one of the developers, and in their email i noticed that the first thing they were doing was sourcing a script in their .profile before triggering the problem. Further inspection showed that this script hijacked the output of ls, cd and other commands so that their output looked like MS-DOS. This was breaking things, lots of things.

I disabled all of this, and some things broke further, but the issue at hand was fixed.

When I asked what they were doing, i was told that the majority of the developers didnt know Solaris, only windows and this script was taken from another one of their large projects as it had helped the developers understand the platform better and get them to start working, after all, Java is Java right ?

It was at that stage i realised you get what you pay for, and watched the project spiral into large drawn out time lines and costs, and although it eventually went live, it was a complete disaster.

In the last outsourcing project I managed, things went much better once I realized that their “you should talk to our most senior developer! He’s great!” had 4.5 years of industry experience. When I calibrated my expectations their experience level things went much better.

Of course, the company had contracted hoping to find senior engineers so the productivity just wasn’t there…

@Ash What you’re likely to see as Indian skill levels increase, though, is a concurrent rise in their rates, which will nullify much/all of the currently-perceived cost advantage of offshoring. Already some firms have moved their work away from Indian firms to still-cheap firms in Southeast Asia.

Back in the ’80 NASA funded some software engineering reasearch that looked at getting near-perfect flight control software by voting to the programmatic outputs of the typical programmers code. The technique was called N-version programming and the thought was that you would get better results by combining the answers from 10 or even 20 solutions. [Note that a smaller-scale, higher-quality-code version of this technique was used in the Space Shuttle.] These days no one uses N-version programming, probably because the research showed that one _excellent_ developer produces more software _and_ higher-quality software than 20 average ones. The way to the lowest-cost AND the highest quality software is to find the _excellent_ developer and just give him/her whateveer they ask for – really. The hard part of course is finding these people .. regardless of which country they live in.

@Indranil Banerjee I have to agree, though I suspect it’s innocent. as in unintentionally framing the cause as indians rather than project management. This is a common view, I suspect pushed by the feel good nature of not owning our own hand in failed projects.

I’ve run many many projects inhouse, outsource and hybrid. while there’s a kernel of truth to the wireframing suggestion this has little to do with failings of indians. If you don’t have good comms and collective wisdom you will always get surprised. I’ve had many successes and they did not need a US babysitter to start the code. They needed what all projects need: clarity.

I too have met with smug, and often incompetent, coders from india (and the US, Russia, everywhere). I somehow failed to confuse a dufus or two with an entire continent. Keep in mind if you are paying bottom dollar you get bottom guy.

I’ve worked with a number of folks overseas and I can tell you that there definitely some very good engineers over there and a lot of sub-par engineers as well. I’ll note here that my experience is entirely with India.

In my experience there really are two major issues that come into play when using offshore resources. The first is in the weeding out process. The second is the high churn factor.

Locally here in the states my company does a very good job of weeding out sub-par candidates, but we have to rely on local managers either of our offshore corporate presence or the offshore vendor to weed out sub-par candidates there. They do not do an adequate job of that and we wind up with a lot of very poor engineers passing through the ranks. Usually they’ve already caused major problems for us by the time we’ve identified them. If they were here locally it would be a lot easier to keep tabs on their work, and “see” the trouble in their faces when you’re talking with them. Nine times out of ten wehn I have someone in over their head I don’t get any telltales via email, IM, or phone conversation until it’s too late.

The second problem is the high churn factor. The Indian technology sector is booming and folks seem to be hopping from company to company just as fast as the offers can come in. So just as we’ve finished breaking in someone and getting them up to speed they’re out the door and we start over with someone new. I can’t blame anyone for wanting to better their situation but the high churn factor eats at our productivity.

As that churn has been increasing so have Indian technology salaries. There is a tipping point somewhere that will eventually cause it to be less lucrative to offshore labor to the Indian market. Once you factor in the increased oversight time and odd hours of American labor needed to make an offshore development model work plus the increased infrastructure costs, and longer timelines you will see a point of parity reached even with lower Indian salaries compared to US salaries. We’re already beginning to see companies start to tap other markets as that point of parity is approaching with the Indian market place and we will likely see the cycle start all over again in these new markets.

There is also locally a high cost in burnout of US employees. Working the central time zone I can tell you that I had to wake up at 6:15 this morning in order to make a conference call with my Indian team while they were still in the office. I’m not normally an early morning riser and it burns me out. As projects go whacky I find myself having to burn the candle at both ends to make the communications work and keep the oversight going. It takes away from my ability to have a work/life balance. I have no opportunity to leave work at the door and go home and just be with my family, and the majority of the engineers I work with are in the same boat. As time goes on our US work force is being burned out and over the past few months an exodus has begun of senior engineers looking for a balance in their lives again. We have hundreds of open headcounts locally and are unable to fill them as word leaks out that our company is becoming an IT sweatshop. In the meantime more and more high profile projects encounter setbacks to their timelines and sometimes highly public failures.

Outsourcing has cost me a job here in North America which makes my opinion somewhat biased. From my perspective though I can say this. Despite the level of competence from the overseas programmers, one must remember to what the loyalties and investment of the individual programmers are given. Most North American based programmers are paid and will give their loyalties to the company that employs them. Their investment into creating a good product enhances their own reputation.

I don’t find this with contract programmers in general though. Yes I have been a contract programmer. As a contract programmer, my loyalties were with my company and not the company to which I was contracted. I was in the position of being paid to do, not to think. Therefore I had little investment in making the product good and no loyalty to the contracting company.

I believe similar attitudes exist in those contracting companies that are being used by North American firms to do the programming work. I find this to be the most commonly overlooked part of the outsourcing equation.

There are no doubt excellent programmers in all parts of the world. Why would any of them be loyal to your company and invest themselves in your product if in the end they get the blame for the problems that are found and only receive some money in compensation.

My advice to those that are looking to outsource programming is very simply to ask the questions that are necessary and include questions about where the loyalty of the programmers exists. What incentive is there for a brilliant Indian programmer to stay with your project until completion and not take that more lucrative offer?

I have been consulting for the past 12 years and am currently working at a customer, who shall remain nameless, that went with an outsourced firm in india to re-write a major application 8 years ago. The initial cost of the system was ~$24 million. The customer has ~800 branch offices. Upon delivery the system could scale to ~ 10-15 offices. Today this system is used in ~80 offices at an estimated cost of $32 million. Their is still currently a team of 30 or so people in India who control a portion of the code. I was brought on 8 months ago with a team from my company to ‘Performance’ tune the application. We have had to rewrite major portions over the last 8 months and have brought the scalability up to nearly 200 offices in 8 months with a team of 5 people. This has been my first experience working on a system with such poor scalability and i cannot speak as to whom the fault falls upon as i was not a part of the initial architecture and development. but i have found repeated examples of poor programming throughout the application that boggles the mind. Before this project I had concerns about my future with cheap labor in India. Now, I feel at least a bit more comfortable that quality versus quantity is enough to provide future job security.

I think having read the article and experienced first hand working on projects that are outsourced to (primarily) India, there are a number of issues:

1. What is sold as a service you will never get. As the article suggests, suggested savings are never realised even though cheap labour rates are quoted.

2. The resources are not right. I have experienced large blue chips hiring fresh graduates to carry out the work. There is talent in India but this talent has either moved out of the country or demands larger salaries.

3. Processes are not adapted to work with the offshore model. It was suggested in some of the comments that you have to be absolutely explicit to what is required. This costs money and time

4. This works in cycles. Offshore is done to save money and give a big wig a bonus. The service turns out to be poor and then it is all hauled back inhouse. This goes back around 5-10years again.

First off: the absolute worst outsourcing experiences I’ve had involved Romania (incompetence on a scale this text box will not hold) and Russia (outright fakery, and we had a Russian PM in the US.) India hasn’t been all that bad.

Second (and this was India): The CEO of our startup bought a Windows utility at a rock bottom price. I all but completely rewrote it, and it actually sold okay. A couple of years later, at a different startup, we were looking for utilities to repackage and we wound up buying the exact same codebase again (for next to nothing, and worth it.)

Moral: maybe they wrote it on spec, I don’t know, but don’t assume your outsourced project is just for you.

The problem with this post is that it creates a completely negative picture of the situation. I have worked in India and in the US, and I have seen bad Indian programmers and bad American programmers. The cost of life is not as high in India as in the US, so a dollar to dollar comparison is not fair. At the same time, with the country churning out around 300-400 thousand software professionals every year, you cannot expect each one of them to be as gifted as the other.

You got to be careful about whom you outsource to, do some research, don’t enter into contracts without getting the information you need. Big corporations have big software production facilities in India. Google, Microsoft, Oracle, Symantec, you name it and there’s one and all of them are doing really well, with labor costs lower than those in the USA. So instead of fueling negativity among people towards a particular region, gather your facts first.

I think the problem is much more general than India or Programming, but with the out sourcing companies themselves no matter where they operate. Companies not individuals and it doesn’t matter what the skills required are.

The Companies bids X and pays it’s employee something else than X. The employee increases in skill and wants more than the part of x they are currently giving. If the employee worked for a company that hadn’t already committed to charging x they might get a chance but they don’t so they move on to somewhere else and get replaced by someone who will take something less than X.

I am an Engineer from India and I do not even need to read the article to agree with you. The title itself has me convinced. The whole world knows India as the land of Engineers, they are mistaken, it is more like the land of mechanics who have their work titles as Engineers/programmers. And sure as hell we produce some really really good mechanics, people who can invent a band-aid in a matter of minutes and not everybody can do that.

Sure we produce some very good Engineers but it is safe to say 99% of them don’t work in India and neither were they produced by Indian Education system. So what if we produced a million engineers out of a billion people, I am sure every developing/developed country produces Engineers/programmers in those percentages.

Of course this must be true for a lot of other countries too, in the end I believe most of the times you get what you paid for. That being said I have also seen some very lazy and lame programmers/engineers (not asian) working for big Corporations in NA and Europe.

@Matt
Right on. I charge by the result, not by the hour. By that metric for complex jobs I often come up cheap–$125 is just my rule of thumb for making bids. No one should hire me to do simpler stuff: just like implied in the first paragraph on my website, I discourage it and suggest others who can get the job done for cheaper.

When I read the original tagline i thought: “Finally, someone has the guts to out a spade as a farming implement”. Then you ‘retired’ your original title, after having – i suppose – been accused of racism, culture-centrism or some other ism irrelevant to the issues.

The issues remain though – by a huge margin, offshore Indian programmers produce ‘code’ which would fail to pass any reasonable standard of code review. This has a significant impact on the actual cost of doing business, as it is not only product quality which suffers, but more significantly, the entire business depending on said software.

This issue affects some vendors more than others, and it does so ( in my experience ) in proportion to the degree their that their outsourced application code needs to support hardware functionality. To put things bluntly, offshore Indian software developers working in separation from offshore Indonesian or Chinese hardware developers, produce generic, inefficient and non-scalable code BECAUSE their software skills are generic and their understanding of how the product is meant to function is often nil.

It takes years to become an effective embedded application programmer, months of exposure to practice, requirements, testing methodology, months more to understand what the hardware does and how its meant to function ( at least in my industry). Unfortunately, the practice of selling fresh faced graduates as ‘experienced developers’ is universal. More so in India and China than in countries with lower natural growth and higher professional requirements than _merely_ a new degree from the university of Bangalore or Chennai.

Supporting buggy, substandard code is more expensive. Maintaining a productive customer relationship when faced with such quality issues is hugely more expensive. Customer confidence in solutions based on said software – and therefore in the enterprise selling it – plummets. The net result is quite predictable – company loses business and eventually – at a significant cost – the practice of outsourcing coding to the subcontinent has to be abandoned.

Outsourcing of mission critical business functions (in this case software development, but it works just as ill for support) is almost always a mistake in the long run. Your offshore resources have no motivation aside from merely staying employed; quality control is often nonexistent, especially since you insist on paying less for a ‘developer’ than you do for a janitor. Wake up!

I think it’s a matter of ratios. While I’ve similarly only had bad outsourcing experiences with teams in India (2nd worst), Vietnam (worst) and Eastern Europe (best of the worst) I believe there are some good developers out there. However, while say 50% of developers in the US may be able to tackle jobs well and successfully, this may only be 5% in countries where outsourcing firms rule the industry. Why would this be?

Well in the up and coming economies of these countries, people do still value education, getting a good job, not living off welfare, etc… If you tell the people they can get a solid reliable income in a certain industry, they will flock to it. This has seen the programming industry in these countries flooded with poor and mediocre talent.

On the flip side, in the US, the majority of people who study and/or work in the IT and programming industry are people that have an interest and natural affinity for the area. Universities sometimes struggle to fill all their places on Comp Sci/Eng courses. Subsequently, the talent pool in the US is less diluted with poor talent.

Really it’s a gamble at the end of the day. The probability of hiring a whole team of A grade developers in India is minute. The probability of finding one, slightly better. If you hire in the US, your odds are improved by a considerable factor.

If we took all the unemployed people in the US, or all the people living on government handouts in the UK and re-educated them to work as programmers, I have little doubt the talent pools in those countries would be equally diluted and at that point, it honestly would make sense to outsource abroad (or the average developer rate in the US/UK would drop considerably)

Before blaming the problem on outsourcing you have to deal with the fact that a small percentage of programmers are a order of magnitude better that most programmers. Which means that you can’t compare the result of one programmer with the result from others. What you have to do is compare the result of large teams against large teams while working on similar projects.

You left out perhaps the biggest reason why India in particular and many other cheap technical labor destinations get customers into trouble.

You cannot sue them, no matter how fraudulent their conduct.

8 years ago some friends sent a job to India; 7 years ago I was called in to clean up the mess. It went beyond all of the (valid) issues already raised here, though they had all those as well. There was gross negligence (massive logic errors undermining the entire app). There was flagrant ineptitude (no source control, no testing or QA of any kind, no comments or indenting in the code).

But most interesting was the degree of obvious and massive overbilling, including, very likely, imaginary team members.

If it were a US firm, you might sue them. In fact, in 20 years I’ve never seen a US firm fuck someone so flagrantly, because they’d be afraid they’d end up in court. But the court system of India, for instance… even if you do go through the significant effort of investigating how to use it, what you find is that it essentially doesn’t function for you unless you are “well connected.” Aka it’s patronage and network driven, if not outright bribe-driven. It is meant to give theater to the disputes of the rich, and if you have to ask, you already know you are not rich. In many cases the rooking of foreigners is also considered somewhat amusing if not something to be tacitly encouraged.

This is a massive factor that is well known outside of IT in other industries that source in the Far East and other parts of the world. It’s one reason why the outsourcing model works better for IBM – which can invest in local facilities, management, and “governmental relations…” but not for the average buyer.

Nationality is not the problem, relative distance is. And by “distance” I mean relative separation in geography, time zone and culture.

It doesn’t matter how good the person at the other end is, if the two of you cannot have an interactive conversation (not email) any time of day, as needed, then the result is pretty much guaranteed to be crap. If it were possible to accurately spec out a program, then we would not need programming. The reality is that “specs” are only outlines at best, even when broken down into stories. The *development* of each story involves more than coding. That’s why we have daily meetings and plenty of informal conversations throughout the day to figure out what the intent really is.

There are plenty of reasons for expanding your team outside the four walls of your office, but you have to 1) define what those reasons are in your case and 2) find the right match. If you just want to save money, do less.

Well, what do you expect? Imagine hiring the cheapest programmers you can find, as many as possible. Then try to fulfill customer’s contracts who will arrive by night and won’t be very specific. The more hours you can get out of the contract the more successful you will be.

Put yourself in that subcontractors shoes and you’ll see what I mean. “Poor sense of quality” has very little to do with it. Market realities does. And, no, I’ve never been afraid of programmers working for spare change.

The article may sound a little racist due to generalization, but the truth is that the US empowered India, once the US economy fails for good India and China (hence why they own a majority of our debt) will need to look for other sources of revenue since their national export is computer programmers (and cheap manufacturing in the part of China). There are mediocre programmers everywhere, I’ve met some brilliant Indians who can model, code, and even look at a problem from multiple perspectives, but the truth is that for India, software development is a numbers game and a matter of quantity, not necessarily quality. Just like with any cheaply mass-produced item. India is to software what China is to manufacturing.

@Matt Freeman
I just happened to read this thread. I’m amazed at how can people be so blind to the obvious!!! I can understand it’s hard for you guys to accept the facts when they are all against you but be man enough to accept it. Indians are very talented, very hard working, have a burning fire in the belly to succeed and to lead.

Outsourcing is not because it’s cheap, the fact is it is the need of the hour since locals can’t do it. There are very few who know how to code and even less people who want to work.

Don’t scowl… Come out of your comfortable life and try to face the truth before it kills you.

I wanted to add one more thing. While the author may be “suspect of hourly rates” in this industry, he should keep in mind that many professional firms operate in this manner, or something based on it.

Because of the frequent problem of constantly moving goalposts, and project specs that change in mid-stream, I have found fixed-price bids to be very often unrealistic. One party or the other ends up getting screwed.

What I do is render an estimate based on what I expect my time to be, and what the understanding of the job is. Unless the project takes more than 10% longer than originally estimated — for legitimate reasons only — then the customer gets it at the originally bid price. If it takes longer, due to circumstances beyond my control (it does happen… like a serious bug in a code library), then we talk again about price. If they propose something that is significantly outside the originally understood scope of work, then we talk again about price. The former happens very seldom (sometimes there are delays but not legitimate excuse for charging more). The latter happens far more often than it should, because customers seldom give adequate thought to their design before contracting the job.

So… my prices are not “hourly”, per se. But they are still based on my estimated time. There is very little difference except that it is not open-ended. It is open-ended agreements, not “hourly rates” per se, that are to be avoided.

@Ash Good argument, but I have a different experience. I recently tried to outsource some iPhone/iPad development to eastern europe. The country in question has average salaries of about 250 euro ($400) per month, with experienced engineers averaging 600 euro ($1000) monthly.
Obviously, based on my experience with outsourcing, I was looking for guys at the top of their game. They’ve quoted 2000 euro per month ($3000) per person, and that would be to work 16 hours a week, keeping their day job.
Cheap is cheap, quality costs, be it here or anywhere. The market is equalising the prices of top talent, like in any other industry.

Hello all, I couldn’t help but notice this pointless quarrel between what is such a sensitive topic that covers a lot more than just some simple outsourcing…and that goes for any country not just India…it’s all right to be threatened and be happy for outsourcing to take place…
Because it differs from person to person and their opinions are based on the role played on site by the outsourced. Remember it’s the company that is outsourcing that decides what they want from the other company, and if the other company provides people that are inexperienced then it’s their fault for doing so. Period.

I think you reap what you sow. If you do not do enough research on the company that you are outsourcing to then you might have to eat rotten apples.
We had outsourced our work to an American company in Texas after talking to the Project Lead(a Jewish guy) that all developers we hired were Americans(this was my Manager’s requirement, and not necessarily mine). After 12weeks we had to scrap off the project from their end and eventually outsourced it to an Indian company for a higher rate.
There are good and bad programmers both in India and USA. And I have experience working at both ends. The only difference is that since most Americans think they are better they just go with their implementation, which may not necessarily be the best, but help you get the project out of the door and many programmers(good or bad) from India are intimidated to speak back to clients(cultural issue – customer is always right).
Basically if a person cannot research about the team that he is going to spend his money on, then he was not worthy of that money anyway.

Conclusion: Country doesn’t matter, you need to do your homework and can’t blame it on others for it.

@Don
“These days no one uses N-version programming, probably because the research showed that one _excellent_ developer produces more software _and_ higher-quality software than 20 average ones.”

Fred Brooks, Mythical Man Month. Best book on software engineering and project management ever.
And, related to your line, his “No Silver Bullet” paper from 1986, also included in the MMM 20th Anniversary Edition.
Should be required reading in every CS curriculum.

All that you have done is provide an outlet for a bunch of frustrated Americans to exercise their feel-good complex and assert, “Maan, them Indian fekkers, them can’t do nuthin’ right.”

Doubtless you thought you were making a unique contribution to the debate around outsourcing. All that emerged was cheap, racist sentiment. And then, scared by the genie you had unleashed, you took a step back and realised what you were and what you had done. At that point, you had to make yourself look like the good ole American who’s from the land of the brave and the free (and all that other shit which is spouted ad infinitum). You can’t unscramble an egg, old chap. The damage is done.

Only a fool would even try to generalise about a country of 1.2 billion.

I’m writing an article titled “Why I don’t feel threatened by racist Americans.” You might like to come by and comment when it’s done.

It’s not about Indians. And not even about outsourcing. It’s the nature of the work, the nature of the market, the nature of people.

With $25/hr chef’s food and a $250/hr chef’s food, everybody can tell the difference. Everybody is an expert about food. You can compare the pasta at this restaurant and the pasta at the other restaurant. Even with doctors, or lawyers, a layperson can judge: how many cases saved? How many lost?

But how do you justify a $250/hr programmer? Everybody says they are good. Very few can tell the difference. And projects are all different. Even a $250/hr programmer cannot guarantee zero defect, zero misinterpretations, 100% on-time delivery. If you can’t really tell the difference, why pay more?

Only projects from companies, where top-down, all are tech-savvy, will pay the price for good techies. All other companies, run by empty suits, only see the dollars/hr. Talk anything else, scalability, maintainability, stability, etc, their eyes glaze over and they tune out.

My experience is that outsourcing or not is not the question. It’s the way you overcome multicultural differences and all expectations around it. I believe that the software development process can’t be industrialised as some people want to sell us. The human aspect is still important and needs to be managed properly. In the end it’s all about quality and the will to work together. In a way outsourcing does help both parties maturing there own processes and business models.

Probably the funniest call I’ve had with a customer as a security consultant was a company that had sent a project overseas for cheap development, then tried to sell the product to a government customer. The customer was suspicious, and wanted a full code review to vet the work by a neutral third party.

Unsurprisingly, they didn’t like the price and probably tried to outsource that, too. :)

Nice read and it echoes my experience with outsourcing very well. And it is really a global problem, as I had worked with Romanians and Russians at a past company and there were the same problems.
The defining problem is the game being played, not the players (i.e. programmers). The playing field created by the companies offering outsourcing and the companies wanting to outsource only leaves room for low price & poor quality results. Similarly when all our production jobs got outsourced to China, but in this case it was *us* that created the playing field. We all wanted cheaper products (thought that never really panned out) and more dividends from our stocks.
Hence we get back plastic toys filled with toxins.
You get what you pay for.

The 2005 nation-wide Christmas Day airport shutdown in the US was caused by ComAir’s 100% Indian IT staff who rewrote the code and used a short int instead of a long int. It worked under normal testing and normal conditions – until a peak load hit and the number of schedules exceeded the amount a short int could hold. That brought the entire system down and with it the entire crew scheduling system nationwide. No one ever mentions that in the media.

You get what you pay for. It’s cheaper labor for a reason. If you don’t mind turning the US into a 3rd world country like India, then have at it. But I suspect at some point the vast majority of people are going to complain when the country becomes non-functional.

And God help us – they are now getting into our military contracts as well.

Adaptec – Indian CEO Subramanian Sundaresh fired.
AIG (signed outsourcing deal in 2007 in Europe with Accenture Indian frauds, collapsed in 2009)
AirBus (Qantas plane plunged 650 feet injuring passengers when its computer system written by India disengaged the auto-pilot).
Apple – R&D CLOSED in India in 2006.
Australia’s National Australia Bank (Outsourced jobs to India in 2007, nationwide ATM and account failure in late 2010).
Bell Labs (Arun Netravalli took over, closed, turned into a shopping mall)
Boeing Dreamliner ES software (written by HCL, banned by FAA)
Bristol-Myers-Squibb (Trade Secrets and documents stolen in U.S. by Indian national guest worker)
Caymas – Startup run by Indian CEO, French director of dev, Chinese tech lead. Closed after 5 years of sucking VC out of America.
Caterpillar misses earnings a mere 4 months after outsourcing to India, Inc.
Circuit City – Outsourced all IT to Indian-run IBM and went bankrupt shortly thereafter.
ComAir crew system run by 100% Indian IT workers caused the 12/25/05 U.S. airport shutdown when they used a short int instead of a long int
Computer Associates – Former CEO Sanjay Kumar, an Indian national, sentenced to 12 years in federal prison for accounting fraud.
Deloitte – 2010 – this Indian-packed consulting company is being sued under RICO fraud charges by Marin Country, California for a failed solution.
Dell – call center (closed in India)
Delta call centers (closed in India)
Fannie Mae – Hired large numbers of Indians, had to be bailed out. Indian logic bomb creator found guilty and sent to prison.
GM – Was booming in 2006, signed $300 million outsourcing deal with Wipro that same year, went bankrupt 3 years later
HP – Got out of the PC hardware business in 2011 and can’t compete with Apple’s tablets. HP was taken over by Indians and Chinese in 2001. So much for ‘Asian’ talent!
HSBC ATMs (software taken over by Indians, failed in 2006)
Intel Whitefield processor project (cancelled, Indian staff canned)
JetStar Airways computer failure brings down Christchurch airport on 9/17/11. JetStar is owned by Quantas – which is know to have outsourced to India, Inc.
Lehman (Spectramind software bought by Wipro, ruined, trashed by Indian programmers)
Medicare – Defrauded by Indian national doctor Arun Sharma & wife in the U.S.
Microsoft – Employs over 35,000 H-1Bs. Stock used to be $100. Today it’s lucky to be over $25. Not to mention that Vista thing.
MIT Media Lab Asia (canceled)
MyNines – A startup founded and run by Indian national Apar Kothari went belly up after throwing millions of America’s VC $ down the drain.
PeopleSoft (Taken over by Indians in 2000, collapsed).
PepsiCo – Slides from #1 to #3 during Indian CEO Indra Nooyi’ watch.
Polycom – Former senior executive Sunil Bhalla charged with insider trading.
Qantas – See AirBus above
Quark (Alukah Kamar CEO, fired, lost 60% of its customers to Adobe because Indian-written QuarkExpress 6 was a failure)
Rolls Royce (Sent aircraft engine work to India in 2006, engines delayed for Boeing 787, and failed on at least 2 Quantas planes in 2010, cost Rolls $500m).
SAP – Same as Deloitte above in 2010.
Singapore airlines (IT functions taken over in 2009 by TCS, website trashed in August, 2011)
Skype (Madhu Yarlagadda fired)
State of Indiana $867 million FAILED IBM project, IBM being sued
State of Texas failed IBM project.
Sun Micro (Taken over by Indian and Chinese workers in 2001, collapsed, had to be sold off to Oracle).
UK’s NHS outsourced numerous jobs including health records to India in mid-2000 resulting in $26 billion over budget.
Union Bank of California – Cancelled Finacle project run by India’s InfoSys in 2011.
United – call center (closed in India)
Victorian Order of Nurses, Canada (Payroll system screwed up by SAP/IBM in mid-2011)
Virgin Atlantic (software written in India caused cloud IT failure)
World Bank (Indian fraudsters BANNED for 3 years because they stole data).

I could post the whole list here but I don’t want to crash any servers.

“Yes, Indian programmers come cheap but they are not a bit as snobbish as a lot of westerners I’ve interacted with. For reasons better known to the individuals, I’ve seen people act like the royalty. Perhaps, and justifiably so, because of feeling threatened by the cheaper, equally skilled, Indian programmer.”

No, because we invented the IT industry and you didn’t and we work 16 hour days to create all the amazing software out there and you don’t.

Can anyone name even one single desktop software application anyone uses that was written entirely Indians? No you can’t – because India can’t.

I’ve outsourced to India, China and… South America (yes, really). Honestly it was an abysmall failure. The problem known as the “yes man” problem in India is basically impossible to deal with.

They may get better in China/India/you-name-it but by then you can’t rule out a *major* drop in the value of the USD and the EUR. Both the US and Europe are over-indebted and at one point these countries will need to default (just like Greece did). We’ll see a slowdown or a recession in these zones and the value of the USD and the EUR are going to plummet.

When this happen we’ll have plenty of very good programmers in the US and in Europe at a very affordable price while India won’t be attractive anymore and will still have its army of “yes men”.

I couldn’t agree more. I am an Indian myself and I’ve been struggling to hire decent programmers in India. Eventually, we had to do something really drastic. We had to outsource some of our work to united states and some countries in easter europe. Of course it seemed expensive at first. But when we see much cleaner and sharper results, it all seems to have paid off.

Culture does matter, and there are some helpful generalizations that you can make. First of all, how likely are they to understand your business requirements, and, to some extent, your own culture.

This guy Raj, for example, makes this very offensive, seemingly antisemitic reference to the religion of the person he was dealing with as “Jewish”: this reflects a lack of understanding of what is okay and not okay in American culture; that kind of distinction does not fly. (For reference, Raj, in the US it’s not culturally okay to try to pin things on our own internal racial and religious distinctions; distinctions with foreign cultures are deemed sometimes relevant. We basically like to believe that we are all the same; you’ll have to get with this program unless you want to be fired from a US job for being a racist some day.)

He then goes on to accuse the outsourcer of “not being worthy of [his own] money” if he can’t research “the team.” First of all, that’s perfect — blame the customer as stupid and somehow inferior; that is actually exactly what US customers love to hear from foreign developers — you should lead with that, in fact.

But second, the point is exactly these information costs; we US outsourcers have a harder time getting good info about foreign developers in general, and Indian developers in particular. That information cost is just as real as any other; you can take this cost on the front end, by trying to distinguish between 20 identical-seeming dev cos (who will send you only their easiest and most clueless clients as references), or on the back end, by hiring one and letting them blow all their deadlines and hand you a product which they will tell you is perfect. In either case, it’s a cost.

I will agree with you that there are lots of bad US devs out there. But it’s a lot easier for people to figure out who is good or bad here than it is abroad.

You must accept this fact that a work get outsourced only when the company does not have the correct person to work on that properly… It would be better to accept this fact rather than writign some blog like this…

@@John : you have said that : “I do know that my work was vastly cheaper, faster, and smoother” – Then why was it not given to you in the first place… History knows the actuality…

Even if you formulate it “Why I Will Never Feel Threatened by Cheap Overseas Programming” – the reality is that very cheap outsourcing happens to many european countries, inside European Union: Poland, Romania, Bulgaria etc…

They can afford such cheap rates because the cost of living there is much cheaper than in USA – a senior developer there, with as much experience as one from US (let’s say over 7 years), usually earn no more than 900Euro/month – that is less than 6Euro/hour – end even with that salary, he earns much than the vast majority of people in that country.

Like it or not, many companies from Poland or Romania offer the same quality of work as many German companies, so India might not be such a good example.

The company I work for just went 53% overseas (Ukraine, I know 10 yrs to late..). Same deal there. I’ve personally tested the efficiency and speed. At BEST they are 6 to 1 american. That means that even if they are paid 6x less than americans, the company is still losing money. Your right, its also a matter of quality. In my industry that is a harsh fact the corporate MBA heads need to recognize.

A lot of truth in this article Why I Will Never Feel Threatened by Programmers in India Cheap Overseas Programming and wise words that need to be heeded by any new startups or companies wanting to save money in the present economic climate. Our company Mindlogik Ltd extended our business into developing productivity add-ins for Mindjet MindManager , a business mapping productivity tool about three years ago. What a roller coaster journey this has been!

Our first developer was a software company from the Ukraine contracted on a fixed amount for a clearly scoped media recorder add-in. The scope was 6 months but 12 months later we had to call it quits and seek an alternative programming avenue. Scratch attempt One

The natural choice was India, but having read about the many pitfalls and false savings of outsourcing we decided on a safer approach providing “local” control of our project. This meant paying slightly less than the New Zealand rate for programming with the business assumption that we would reap a greater bang for our buck.

The safe approach taken was to engage a company located in New Zealand but making use of specialized outsourcing to India. We soon found out that the New Zealand owned and run software development business charged a professional rate but employed inexperienced programmers in what amounts to a software development sweatshop in Hyderabad, India. The results were pricy with disastrous results. Scratch attempt Two!
Being the eternal optimist we then engaged another software firm with a great website, glowing testimonials and Microsoft Certified Partner certification located in Delhi. The results were, unfortunately, not much better. After a budget blowout and many frustrating builds we decided to part ways. Scratch attempt Three!

However, one cannot and must not generalise. Just as there are excellent programmers in India conversely there are also poor programmers in America or elsewhere in the world.

I have, out of necessity taken a philosophical approach to outsourcing our programming requirements. The only other alternative would have been to crawl in to a corner with great lamentations and wailing whilst I pulled my hair out (not that I have much) and covered myself with sackcloth and ashes.
My approach is that outsourcing to ANY county other than your own, like many other business endeavors must be seen as a learning experience and as with all learning experiences there are rewards for those that persevere. I think I have become an outsourcing ‘graduate’ and can say I have achieved my PHD (Programmer Hiring Degree :-)

We have stuck with India and have found an approach that works with excellent results.

The approach we have found the most successful in making use of outsourcing is the following:

1. Define the scope and stages including milestones.
2. Clearly determine the programming skills required for the project.
3. Determine a budget and stick to it.
4. Do research regarding what is required in language proficiency. This normally does not enter in to the equation when outsourcing and I believe is one of the main contributing factors to project failure and scope creep – AKA creative Time Billing.
5. Place communication skills as an essential priority. In fact, good communication and a high level of conceptual visualization of software interface design and programming outcome should be on par with and above programming skill requirements.
6. Separate creative design from programming requirements. Preferably keep design local.
7. We live in a globalized world with an increasingly diverse work force and melding of cultures. By engaging an American, New Zealand, Australian or UK based Software Company does not guarantee that your programmer is a third generation true blue national. The important factor in engaging a software development company is like mindedness – do they understand your vision and dream to create that kick ass platform that will take on the likes of Facebook or Google? More importantly do they have the competent to change the dream to reality? If anything read the excellent book The Art of the Start by Guy Kawasaki. This changed my business approach to life.
8. Make sure that you agree to an acceptable online communication platform. We use GotoMeeting with Mindjet MindManager to map out Projects using Mindjet Connect with great results.
9. Set the ground rules from day one. Determine programming standards, testing requirements and what constitutes failure to deliver on set project milestones. Take TIME to define a contract that clearly outlines what is billable and not billable. This will save you at least 30% in programing costs and will reduce frustration in achieving a successful project outcome.
10. Don’t be greedy and reward excellent work based on clearly defined project outcomes. Build in an incentive bonus throughout a complete project cycle with payment on a weekly or monthly basis.
11. From first contact have direct access to top management. Build a personal relationship with regular contact that is of mutual benefit to both parties. Get to know cultural festivities and dates. Become knowledgeable about management and programmer families and celebrate in sharing cultural similarities and differences.
12. If you have an issue does not react negatively or emotively. Step back and define issues based on your contract. Go straight to top management if you cannot get resolution and make relationship building work in your favour.
13. Pay when payment is due. Outsourcing is based on a system of TRUST separated by distance.
14. Finally see failures as a learning experience. Don’t sweat the small things – major on the majors and minor on the minors. Learn from your mistakes and constantly improve your business processes.

Our result has been successful with four different projects presently in process.

We have taken a slightly different approach. In desperation I flew to India and interviewed prospective programmers. Our programmers are appointed on contract basis to work solely for our company. We meet daily and talk through issues. We treat our contracted staff as part of our company. We celebrate in their victories and lament our failures as a team dedicated to achieving mutually beneficial outcomes and results.

Would I do things differently should we be at a startup phase? Probably not. I am a creative impulsive – always seeking the new and better idea. However, I have learnt from my mistakes and find my How to Outsource Successfully process works for us as a company.

We tried a few times to outsource and lost time and money trying.
Communication was time consuming at best.

There will be no chance of us trying again in the near future..

I believe that there should be a governing body in these countries that regulates the way companies work and interact with companies from abroad that would make them accountable if they are rouge traders or substandard companies or developers that bring the reputation down and stop foreign investment.

Partly our fault for not testing the developers and interviewing them before taking their companies CV and recommendation to be true.
Another thing that set my alarm bells ringing was the fact that they wanted the developer to be paid a month in advance to them.. But that was not my doing, the ones that agreed to it know what I thought of that policy.

Well in the long run all these things we are talking about will stop many companies from trading with them, and companies will return and leave the development companies call centres.

It’s a shame because there are some very good workers out there that could contribute and be very beneficial to many companies around the world.

@Aj 6L per month – The Salary of Fresher in India!!! Are you kidding me? Not even CEO or CTO of many small to medium and semi large companies will demand or fetch that much salary in India. Even the best talents from IIT gets around 12L INR per year, that 1L INR per month. Suppose you are earning 1.5L INR per month (Which is exception – and only really good programmer earn that much money in India), working 150 Hours per month, then your hourly pay will be 1000 INR per month which equals to $20. So the best of the best programmer in India costs just $20. But of course the organization where these programmers works will surely charge you 3 times of what the programmer makes. So in short you will have to pay $60 per hour to deal with the really good programmers. But it stills works out cheaper than US I guess.

@Bob
Oh, really? I listed the man’s possible motivation, why he thinks he is in a position to visit a topic that many would avoid, the fact that he is walking over well watered ground, and analysed the outcome that he has achieved. And all that is irrelevant? Or is that the truth is unpalatable and you would run a mile to avoid it?

I recently read an article called Why I Will Never Feel Threatened by Programmers in India Cheap Overseas Programming . It contains wise words that need to be heeded by any new startups or companies wanting to save money in the present economic climate. Our company Mindlogik Ltd extended our business into developing productivity add-ins for Mindjet MindManager, a business mapping productivity tool about three years ago. What a roller coaster journey this has been!

Our first developer was a software company from the Ukraine contracted on a fixed amount for a clearly scoped media recorder add-in. The scope was 6 months but 12 months later we had to call it quits and seek an alternative programming avenue. Scratch attempt One !

The natural second choice was India, but having read about the many pitfalls and false savings of outsourcing we decided on a safer approach providing “local” control of our project. This meant paying slightly less than the New Zealand rate for programming with the business assumption that we would reap a greater bang for our buck.

The safe approach taken was to engage a company located in New Zealand but making use of specialized outsourcing to India. We soon found out that the New Zealand owned and run software development business charged a professional rate but employed inexperienced programmers in what amounted to a software development sweatshop in Hyderabad, India. The results were costly with disastrous results. Scratch attempt Two!

Being the eternal optimist we then engaged another software firm with a great website, glowing testimonials and Microsoft Certified Partner certification located in Delhi. The results were, unfortunately, not much better. After a budget blowout and many frustrating builds we decided to part ways. Scratch attempt Three!

However, one cannot and must not generalise. Just as there are excellent programmers in India conversely there are also poor programmers in America or elsewhere in the world.

I have, out of necessity taken a philosophical approach to outsourcing our programming requirements. The only other alternative would have been to crawl in to a corner with great lamentations and wailing whilst I pulled my hair out (not that I have much) and covered myself with sackcloth and ashes.
My approach is that outsourcing to ANY county other than your own, like many other business endeavors must be seen as a learning experience and as with all learning experiences there are rewards for those that persevere. I think I have become an outsourcing ‘graduate’ and can say I have achieved my PHD (Programmer Hiring Degree :-)

We have stuck with India and have found an approach that works with excellent results.

The approach we have found the most successful in making use of outsourcing is the following:
1. Define the scope and stages including milestones.
2. Clearly determine the programming skills required for the project.
3. Determine a budget and stick to it.
4. Do research regarding what is required in language proficiency. This normally does not enter in to the equation when outsourcing and I believe is one of the main contributing factors to project failure and scope creep – AKA creative Time Billing.
5. Place communication skills as an essential priority. In fact, good communication and a high level of conceptual visualization of software interface design and programming outcome should be on par with and above programming skill requirements.
6. Separate creative design from programming requirements. Preferably keep design local.
7. We live in a globalized world with an increasingly diverse work force and melding of cultures. By engaging an American, New Zealand, Australian or UK based Software Company does not guarantee that your programmer is a third generation true blue national. The important factor in engaging a software development company is like mindedness – do they understand your vision and dream to create that kick ass platform that will take on the likes of Facebook or Google? More importantly do they have the competence to change the dream in to a reality? If anything read the excellent book The Art of the Start by Guy Kawasaki. This changed my business approach to life.
8. Make sure that you agree to an acceptable online communication platform. We use GotoMeeting with Mindjet MindManager to map out Projects using Mindjet Connect with great results. Link this to professional development at the start of the project at no cost to your company and the development company . A win–win situation. The programmer gets a skill set at no cost and you save on time by ensuring immediate engagement using your communication platform from day one.
9. Set the ground rules from day one. Determine programming standards, testing requirements and what constitutes failure to deliver on set project milestones. Take TIME to define a contract that clearly outlines what is billable and not billable. This will save you at least 30% in programing costs and will reduce frustration in achieving a successful project outcome.
10. Don’t be greedy and reward excellent work based on clearly defined project outcomes. Build in an incentive bonus throughout a complete project cycle with payment on a weekly or monthly basis.
11. From first contact have direct access to top management. Build a personal relationship with regular contact that is of mutual benefit to both parties. Get to know cultural festivities and dates. Become knowledgeable about management and programmer families and celebrate in sharing cultural similarities and differences.
12. If you have an issue to be resolved do not react negatively or emotively. Step back and define issues based on your contract. Go straight to top management if you cannot get resolution and make relationship building work in your favour.
13. Pay when payment is due. Outsourcing is based on a system of TRUST separated by distance.
14. Finally see failures as a learning experience. Don’t sweat the small things – major on the majors and minor on the minors. Learn from your mistakes and constantly improve your business processes.

Our result has been successful with four different projects presently in process. We have taken a slightly different approach. In desperation I flew to India and interviewed prospective programmers. Our programmers are appointed on contract basis to work solely for our company. We meet daily and talk through issues. We treat our contracted staff as part of our company. We celebrate in their victories and lament our failures as a team dedicated to achieving mutually beneficial outcomes and results.

Would I do things differently should we be at a startup phase? Probably not. I am a creative impulsive – always seeking the new and better idea. However, I have learnt from my mistakes and find my How to Outsource Successfully process works for us as a company.

As an individual developer, I have outsourced to other developers on rentacoder.com. From my experience, the best lower cost developers are from the eastern block of Europe. They are very strong in math and logic. The worse are from India. I give the Indians clear specs and they produce something different… AND then they argue with me as if I am the idiot and I don’t know what I am talking about. They forget about my requirements and specs. Indians are also stubborn and hard headed. Call me a racist now. I worked with Filipinos and they are more efficient & cheaper than Indians. Indians are work donkeys. They need blueprints before they can start using their brains. Of course to every generalization, there are exceptions. I have worked with some talented Indians but they are rare.

Well.. you get what you pay for. You can outsource to reputed Indian companies such as Infosys or TCS if you want high quality software. If you are a real cheapskate, a pennypincher, who wants to get a mercedes at the cost of a ford focus, well guess what.. you get what you pay for. Big f***king deal. No need to rant and rave like a racist xenophobe.

I have worked in US, and I now returned to India and work here. My personal experience is that there are bad programmers and good programmers at both these countries (I can’t generalize to “all” places, as I have worked in only these two countries). Though the difference is that even the bad ones in US are so smug that you being to wonder how exactly their brain works. BTW, I also happened to clean some really awful design/code done by so called superior western programmers (what would call someone who created six classes which does things similar to some of the classes in Java lang libraries, where you could have just called a different constructor!, so I have seen really bad shit being created by “good” programmers in US).
The whole argument has several flaws:
1) If someone in US wants to just go “cheap”, and that is the only goal they have, and chosen the rock bottom priced guys in India instead of choosing talent comparable to what they had chosen in US, and then project has gone haywire, then it is their fault, not the “cheap” Indian programmer. Ranting about that cheap Indian programmer is evidently self-serving. Wait a minute, you call yourself a great programmer, and yet compare apples with oranges and call it great piece of analysis… oh well, great, I have seen that smugness before!
The undeniable fact however is that it does cost less money to get work done in India: I cost around 2/3rd of what I would cost if I move to US (though this gap in % term actually has been decreasing over the years, at least for me). So the cost is definitely less here, and I can give my equivalent peers in US a run for their money (I must clarify that that is not my goal of life; I just want to do what I love and make good living without staying far away from my family). Some will remain smug, rant in blogs and become extinct, but I believe that the good ones will pull up their socks and raise their game (and I love the later kind, they are such a fun – and I know several of them in both countries).
2) How do you explain that Facebooks and Googles of the world are setting campuses in India: do you think they are paying $12/hour here? You know what: I was having a chit-chat with a very senior exec of a very big and profitable MNC, and he told me that price arbitrage is a fact, but that is secondary in their calculations. They would not move or do a project in India just because it costs less here; the first thing that they think is whether there is capability at the first place, and whether that capability is retainable (longevity). He told me that he is starting some project in China, though costs are higher there because attrition is high in India (so it seems that Indians are catching up in smugness with their American counterparts). That was an eye opener for me.
3. And what was that PhD thing? Seriously! How many programmers in India even have Masters? That made me think that you really know nothing about things out here. May be getting rid of your smugness will help you educating yourself about your competition.
4. And how about googling about startup in Bangalore that are attracting funding from VCs in valley, and planning to open their second office in US, and some have been even acquired by US big-names.
5. Probably you don’t know that there are a tons of folks who have returned to India after spending a decade or more in US and earning a reputation (and contacts!). May be you should visit Google or Microsoft office in India, and meet some of these folks. You will learn something.
Bottom line: India has a big chunk of bad programmers, and so does US; and in both places they cost much less than the programmers who are best in their craft. If you compare apple to apple: programmers in India cost less; and there is big enough pool of “best in the world” in India for some of the most respected companies to set a shop here. I have seen it now for a decade and half, and I tell you, it has been getting better and better. When I started my career, I could not imagine, even in my wildest dreams, of how things are today in terms of quality of work being done here. So may God help those who think that there are only cheap programmers in India, and none or very few with the quality of the craft you claim that you have, and so there is no threat from programmers in India.
To all my friends: don’t be smug, strive to be on the cutting edge, do what you love, focus on “karma” and you have little control over the rest; and to my Indian friends: beware that you don’t have monopoly on stealing someone else’s lunch, the world has learned a great deal of that from you, watch out, they are on it – slowly but steadily.

Some of my Indian friends (born in India, migrated to US on H1B) who manage IT spend in US also bemoan the fact that they can’t even employ a single programmer due to blanket ban of using onshore programmers. Well, that’s taking it to the extremes.

One thing the author of this post should bear in mind, however, is what my Indian friends call the 70:30 or 80:20 gambit.

Most companies that have any decent budget to spend on IT initially hire the services of one or the other Big 5 firms to do ‘business process consulting’, ‘change management’, ‘feasibility study’, ‘strategy document’ and quite a few other fluffy bits. Fresh or seasoned MBAs with no direct knowledge of the industry, regurgitate report after report, recycled from years of hard work put in by their predecessors (from Victorian or WWII times ? ha ha ha). They have long term stay in Marriotts, Best Westerns, Radissons – charge hefty sums in time and expenses and leave precious little as ‘tangible’ output. Suddenly, after 1-3 botched up years, the IT Director of the firm suddenly realise his seat has turned hot under a$$ with just 1 more year to show something tangible – e.g. an ERP that works, a portal that customer can use and order etc. By this time, he has already spent 70-80% money. With what’s left, all he can lay hands on is a ludicrously under-cut offer from one or the other tier-2/3 type ‘system integrator’ Indian firms. The already rich, upwardly mobile and well-oiled workforce in the West fleece these exorbitant rates and move on from one firm to the other. Middle class in the West have no clue why carpet is pulled under their feet – if all white elephants are made non existent and profligacy is nipped in the bud, there can be budgets for healthy IT spend, hiring best of talent at optimal price, be it onsite or offshore.

Obviously, such firms hired as an after-thought, with frugal margins, are infamous for long work hours, high employee attrition, low morale and consequently low creativity. These become bad ambassadors for Indian talent, bringing down with them, the overall image of what Indians are actually capable of.

Is there truth in the fact that one can hire similar (like for like) talent for less cost in India – A big YES. No running away from this reality. A country rich in people as a resource, even if intelligence is a matter of statistics, should have lot more talented people. Indian middle class population today is the size of US population or more.

A firm that charges 1/10th of US hourly rate – can they still provide similar talent though – Of course NOT

Is outsourcing (to anywhere overseas for that matter, not just cheap destinations; try outsourcing from US to Ireland) always the best way to bring down costs – Again, how could this be true ? Common sense should prevail on what’s best retained locally what should be outsourced.

There really is no need to seek refuge in any perceived ‘holier than thou’ pedigree. It’s only as misplaced as a conceited programmer in India who may think his English is already impeccable !

Hey i am not agree with you ! now time changed !! look in silicon valley INDIAN programmers are paid more attention than Others !! Well in some recognized US top TECH firms check ratio of INDIAN programmers !! Well now time changes we haven’t need to go to US ,we working on our startups with Openstack ,Hadoop ,ruby ,Dajngo ,haskell . Might be you feel after 2015 what exactly you is reversed about education and employment status :)

@Ash
Not sure I quite agree with this analogy. Japanese cars in the 50s and 60s were easily on a par with Western built cars. In those days, reliability was absolute king (easy to forget how unreliable most cars were) and the Japanese cars fulfilled that.
That reputation still exists today, even though its probably less deserved.
Relating that to software, the largest problem is normally budget/timescale. In my experience no outsourced project has improved that problem, in fact it is generally much worse.

I’m not employed as a programmer, but my early days of playing with code stem from ASM x86 and Q-Basic. I’ve picked up on many other languages during these past two decades, but I say one thing for certain: ALL programming requires creativity, mastery, innovation .. etc. There are multiple ways to perform a given end-result in any programming language, and a responsible programmer understands this well enough to deliver the proper technique / code for the corresponding project. To say that only 10-20% of the ‘work’ requires this is largely the problem that was brought-forth in this blog entry; ALL responsible programming requires this.

If someone treats coding as a mundane thing, then programming is not the ideal career choice for them — programming is ENTIRELY about solving problems and producing good results.. and all problems in life are solved with creativity, innovation, design and architecture skills. Each resolution to a problem needs to fit both the corresponding problem and the environment that it is located in. Programming, health, financial, relationships.. everything.

To think that Americans are unwilling to do such mediocre ‘grunt’ tasks suggests that you really don’t understand much [if anything] about US citizens. There are lines, thousands deep, of programmers and/or those who would be happy to program for their career. Most of us aren’t so arrogant to deny grunt work, so long as we earn enough money to provide for our families, to invest in our futures and to not feel insulted / undervalued by the company.

The ‘best talent’ is multi-faceted. One must have good communication skills, be able to understand exactly what the company wants and to be able to deliver it. If any of these areas are skewed, then the desired end-result will not come to fruition. India, like many other foreign nations, is already at disadvantages in both communication and understanding
of American culture — so the work on their [your?] end is doubly as hard as the coder from the native country of the company out-sourcing the project [US, Germany, China.. etc].

Also, in India, there is a certain mindset of caste which doesn’t translate into understanding or appreciation. Most Americans don’t care if you were born into a rich well-to-do family or if you were born to bums on the street.. What IS cared about is your end result: What can you deliver and how well can you do it.. this is one of many cultural separations that go against American culture and only makes things worse for everyone involved.. something to always keep in the back of our minds. :)

anjan bacchu :
hi there,
While I agree that there are those who don’t quite “get it”, there are those who’re on par with the rest of the world in terms of skills and productivity and creativity.
Just like one cannot say that (all) Indian Programmers are the best , the opposite is true as well. At the same time, the outsourcing business for sure, breeds mediocre programmers who’re OK with maintenance type of tasks.
From what I know, only about 10-20% of work outsourced require innovation and creativity with good Design and architecture skills. Rest of the work requires just grunt work that a lot of American programmers are not interested in.
there are firms in India who work only on product outsourcing — these have the best talent usually.
BR,
~A

Wow, it’s weird how many people took this post as a rant against India. It’s not, even without the update preface. Heck, I don’t even think the article is US-centric. The point of the article is that cheap programmers in a far away place are not a good approach to creating a successful project. In general, your business will be better served by a good developer, one who can better understand the cultural and linguistic context your project will live within, who is working on a similar time schedule, and who has a professional stake in producing good work. These factors–skill, communication, language, schedule and accountability are often taken as granted by managers and entrepreneurs. Take out enough of these, and you have situation described here. Sadly, if you’re paying $12 an hour (of which the programmer gets only a portion), you’re probably not getting the cream of the programming crop, regardless of whether they’re in Bangladesh, Serbia or wherever. If a local company paid for a *good* programmer from an overseas outsource company, at this point for probably $30-60 per hour, management might be thinking twice about the related costs of schedule difficulties, language barriers and accountability. The slowing down of communication due to timezone difference alone can add huge costs to a project, regardless of the programmer’s skill.

@Wakjob you got yourself wrong the point you said that you invented the IT industry, and so you rock. I have a strong proposition. “India invented 0(zero) and not you, and that was well before it was known to you, so believe me, you are ages behind us in mathematics and that won’t change.”

In my observations, most of those from other countries that I’ve worked with who are “worth their salt” tend to come to the US so they can earn higher pay, and then about 80% of those apply for their Green Card and/or go for Citizenship. Some of those remaining work in the US for their 10 year limit, go home for a year, then return to the US for another 10 years. Only a small portion seem to return to their home country to stay.

I’ve been reading these kind of arguments for probably a decade know, and while it maybe the case know, I can’t see how anyone can extend it into the future. Unless you say that overseas people (including us, Europeans) have worse abilities in general, you can’t assume that things won’t change. Yes, it may be the cultural differences as well (especially with Indians, Chinese).

But I think you’re mistaken by the market rules. Programmers (and especially good ones) are in short supply globally. Which means that good developers will make a good living almost anywhere AND that there will be a lot of bad ones, because even they can sell their services. And India produces a lot of bad ones, for it’s a very good opportunity for them (not being a bad developer of course, but being a developer in general). Good for the country and for the individual. And while there are a lot of other ways to make a good living in the Western world, there are a lot less over there. So there will be a lot of developers, who should NOT be developing, over there. There are a lot of them here as well, and also in the US, I’m sure, it’s just the ratio is different.

Also, being a good developer, you assume that others are good as well in your country, but not all of them are. And of course, you very rarely will meet a project executed right by overseas developers, for you won’t know about it. You’ll see the result on the web (or not), but won’t know who made it. What you’ll see is, when your clients turn to you because they have made the wrong decision. Also note, that since developers and thus good developer companies are in short supply, the good Indian ones will be more expensive, so the greedy managers will almost always end up with the bad ones.

(I am from Central-Easter Europe, so I am overseas, but it’s culturally very different from India, China and the traditional outsourcing locations. Also a lot more expensive. As much, as local, Hungarian, developers also talk a lot about Indian outsourcing, while the smart ones take work from Western clients. But they are expensive. I used to do freelancing for Western European and US clients at $50/h, now I’m employing a company, a contractor for my startup, who does the same at the same rate. They are cheaper than the US developers of the same quality, they are pretty good, and a lot more expensive than the ones who work for the internal market.)

Sorry but if US programmers think they’re better just because they set their rates at $100+/hr no wonder many US employers will mostly outsource to overseas developers. And also no wonder unemployment rate among programmers is starting to skyrocket there. They can find the same quality at lower rates elsewhere. That includes good programmers and bad ones.

Even in many european countries with the most expensive cost of living in the world software developers are not paid $100+/hr, aside from exceptional cases, so i don’t see any reasons why in the US software developers need to ask such insane rates. A Software Engineer in Germany for example earns on average anything in between $30-$70/hr, depending on the experience and skill set. And i am sure they have the same (or maybe better) skills than a US based Software Engineer. Also, many team leaders/project managers in several so called first-world countries i worked in (including Europe, Australia, US) were Indian, not American. This should already explain a lot.

The equation high-rate = high-quality doesn’t, in general, hold true. I’ve worked with several US based clients and many of them were outsourcing to overseas developers because they were finding the same quality at more fair rates. Rather than try to explain why you don’t feel threatened by cheap overseas programmers, you should start asking yourself why many US companies prefer outsourcing to overseas programming. I think there must be something wrong with the mindset among software developers there.

I don’t understand how you can title a post “Why I Will Never Feel Threatened by Programmers in India” (this is still the title in the URL), specifically mention India a few times, and then claim that the post wasn’t meant to single out India. :-)

The problem with offshore outsourcing is due to poor management by the US companies. The standard practice is to outsource to offshore and then let them run with things themselves with no management oversight. If offshore resources were managed as tightly as onshore employees – complete with performance reviews – this would be a productive model. But it is most often mot managed. Here is a real case “selling” of the value of an offshore engagement:

Another “benefit” example:
Offshore resources turned in 25,000 production support hours at rate = $ for total $
25,000 production support hours at employee rate of $$$ – $$$$, resulting in $$$ savings.
No mention was made that before offshore resources began putting poor quality code into production, the highest number of production support hours ever recorded by employees was 8,000. Not to mention the increase in outages, customer dissatisfaction and the resulting negative business impacts.

So as long management wants to spin numbers and not address the real costs, things will continue as is.

@Andy There is a fundamental difference between outsourcing to India and Russia.

In one case you get a programmer, who’s profession was selected by his parents, who has little interest in it, who touched a computer for the first time in his 3rd university year studuing computer science and who has never gained any experience outside his job description and if he fucks up, its probably because he does not understand what you are asking of him, but is too polite to tell you so.

In other case you have usually a hacker who got computer as a kid, grew up doing all sort of wierd shit with it, because there was very little else he could do to amuse himself, he went through very rigorous education with lots of competition for the few spots in computer science universities and if he fucks up its because he is probably bored by the simple tasks you are giving him.

Who ever you are, I must admit that you are absolutely right. As far as I can remember, it all started just before the Y2K bug was about to come. Some smart people got so scared that they started off-loading and off-shoring all the menial COBOL related touch-ups to countries with cheaper labor like India and from there, we Indians entered the US market like bacteria on an open wound.

Fast forward some fifteen years and we Indians are everywhere. We even have our own markets in your country. The fact of the matter is, we have sucked out enough from your country and not much is left. So it is time for us to move on…

See you in some other country. Who knows?! We just might be competing for the same projects.

1. There is definitely a threat for you. You cant ignore the fact that things in India are changing for the better.

2. There isn’t a way out of outsourcing. Outsourcing job to India basically means running your mill for 24 hours. While your expert US programmer sleeps, two Indians slog to send him an analysis of the bug, so he can wake up to have the logs, and all patches, that would have taken him hours to generate. He knows how to work his way out hereafter. So don’t say we did not help. I returned from office today at 1 am (IST) finishing up just that.

3. You want us to ştop growing. I work for a big multinational. It is one of the best companies to work for. I struggled for weeks before I got hardware specifications and all the relevant docs. I am among the few above average Indian programmers. Had I had these docs earlier I would’ve performed at better. You pay us peanuts and regard us as monkies. Why then expect programmers out of us.

4. Education in India is mediocre. having studied from a non-IIT, I know what my batchmates and a vast majority of Software Engineers in India are worth. Personally, when I start my company, I am not going to hire them. Its worth noting why would gthese people want to remain mediocre. Its because the 25 k rupees that you pay to a fresher in India is more than what his father earns after 25 years in his job. A contrarian note here, if you only paid less, this bachelor would have gone ahead for Masters and probably wouldn’t have remained mediocre. So you don’t feed us enough to be a lion, but for a Goat that we are, you do give us meat once a week.

5. A sentiment is changing in India. People are moving out of service based comapnies, and Indian product companies are coming up fast. We’ve learnt from you and we are still cheap, but we won’t sell.

I think you must look at the the other side of the story too. Im not saying that because I am an Indian. I have my own share of bad co-workers to deal with and yes I make mistakes too. But have you considered that the outsourcer may not be doing a good job of outsourcing. My first American project was to maintain a million lines of code(developed over a decade) with zero documention. There was only one way to find out what was happening: Step run from the top. We used to spend more time figuring out what what was going than figuring what to do. To top it the BA , for all his expertise , would make such contradictory requirements I wondered how he became a BA. The least he could do was review whatever requirements he had made? Nope.

@anand jeyahar Yes. There is NO reason to innovate or give your unique ideas to the company whatsoever. Any initiative is simply met with a “Very good, now get back to your cubicle!”. There is no reason to waste your time writing an intelligently architected framework for an application. You will never see a raise in salary for your unique contributions. The project will inevitably result in failure because of your incompetent colleagues.

Going through your article, it seems that you have lost your mental stability because of the glory of the Indian IT Industry. And I am not surprised by your article. If I become jobless because of the brilliance of someone else, I would do the same thing. It is natural. Don’t blame anyone for your present mental condition.

Do you even know that how many US / UK / Global companies outsource their IT tasks to India every year? Do you know how much they spend for this? Do you think that they all are idiots and you are Smart (If this is true, your future is surely brilliant, Mr Smart!!) ??

Do you know how many programmers are there any companies like Infosys, Wipro, & many more?? Do you want to say that they all are cheaters?? If they are cheaters, then what makes US Presidents & Foreign Ministers visit CEOs / Chairmans of Indian IT companies now and then???

I believe that US President & other Ministers are Smart. Nothing is hidden from their eyes. But, here they have misjudged intentions of indian IT companies. Now what?? They must come to you and you must tell them to stop all outsourcing, Mr Smart. Or you should publish this article in news-papers the interest of your nation. Do you think what reply you will get?? All american companies (who are in outsourcing tie-ups with Indian companies) will laugh at you, Mr Smart.

funny that i told exactly this in 2003 already. do cheap and simple webpages in east and complicate software development in west.
but who believe to such a not famous small company owner? good that i make my own business and can decide such things by myself.

I didn’t mean ME personally. I meant Americans. From 1978-1998 IT was 98% white American males. Up until Steve Job’s death, Apple was 85% American workers. Stop lying. Please name the operating system or products create and invented by Indians in IT. Parasite.

“Get a reality check. Before you start blaming others for your mistakes, why don’t start by doing some the jobs that is outsourced yourself?”

I USED to do those jobs – before the job robbers came. Kind of hard to do those jobs when you’ve got 3.2 million Indians in your country who all hate white people and are deliberately keeping Americans out of jobs. Exactly what were “my mistakes”? I’ve written 30 successful commercial software products. I wrote products at Apple and Sony (Playstation). Did you? Stop making assumptions about people you have never even met and stop watching so much American TV and movies that makes you think all Americans are dumb.

“You could stop buying Made in China products as a starter, or even start cleaning up your own backyard yourself (if you own one).”

I don’t buy made in China products when I can help it, but it’s kind of hard not to given that nearly everything sold in the US is made in China these days.

@Wakjob you got yourself wrong the point you said that you invented the IT industry, and so you rock. I have a strong proposition. “India invented 0(zero) and not you, and that was well before it was known to you, so believe me, you are ages behind us in mathematics and that won’t change.”

sounds absurd ?, well you sounded the same :-)

Indians invented zero? How appropriate for the country that is the biggest zero in the world. When did you invent it? 10,000 years ago? Anyone can notice they have nothing. India didn’t “invent” zero – zero has been around ever since the world began. Zero simply means “nothing”, no one “invented it”. Typical Indian boasting.

What else did you invent? Any commercial operating system out of India anyone uses?

Now listen carefully to me a******.. dont just bark around in the corner like a rabies stricken stray dog about your pathetic views about politics and jobs. If your insecure about your skills and abilities thats your f****** problem not Indians or any other politicians.. Well you want me to provoke you well then hear this, we are gonna take all your jobs away.. we gonna make sure that you dont even have money to buy s*** and eat, we gonna take evrything thatwas yours.. we gonna drape the Statue of Liberty with a saree (you dont know wahta saree iis, well its a dress which Indian women wear).. now get your f****** stinking face out of here A******!!!!!

Hi,
what about the public debt of usa which is $15 trillion.
its same size as usa economy .
@WAKjob it seems you were fired .
when you developed “30 software products” why you are out of job.
you are barking .
regards
unnoda amma

Such a great article. And for me timely. I’m just about to step off this off shore cliff. I couldn’t find a US based programmer with the time, and at a reasonable price to do that work. US programmers not only price themselves out of the market, but then they put a nail in the coffin by upfront financial demands. Am I going to front some guy thousands of dollars before I see one line of code, or one small demonstration of professionalism? No.

I want to hire US based programmers. I so, so, so do. As a group, programmers have made it impossible for small companies to do that. Find away around this problem and small companies like me, will be buying up your time like there is no tomorrow.

Alright gang, time to shut the comments down. It’s devolved into just so much racial hatred, which has no place here (@Wakjob, I appreciate your contributing so much to the conversation but man am I tempted to wholesale remove your off-topic comments). Indian culture is fantastic: their historical and contemporary contributions to mathematics, philosophy, spirituality and more make it a nation with much to be proud of. Please take the hatred elsewhere.

@Tushar, let me be clear in saying I don’t make companies wrong for hiring overseas labor: I just have no need to feel threatened by the practice for the reasons I’ve detailed (with the end conclusion that US-based programmers who are top of their game can be every bit as competitive, if not more so). My not feeling threatened by X != X is a dumb idea. Those are very separate assertions: I make the former, not the latter.

@Frank, I wish you all the best in hiring good talent: I completely sympathize with your difficult position of trying to hire someone you can trust to give you a good bang for your buck. Your lament about a need to front thousands of dollars without seeing any demonstration of professionalism is no doubt a topic worthy of exploration.