source | link

I can't speak for others. This is my opinion, which people don't seem to disagree with. Let me start with some of the facts as I see them.

First, there is evidence that most people aren't really cut out for software development. (For instance UI research indicates that over half the population will probably never "get" the idea of a directory tree.) In the West, those people have no problem finding other decent jobs that they are better fits for. In India, by contrast, there is so much pressure to go into software development that they do anyways. This means that there are a lot of people in India going into software development who really shouldn't.

Next, India is a common destination for outsourcing. Companies do this because it looks cheap (salaries are low). However it is well documented (for instance see the documented cost factors in the COCOMO II model) that all of the following increase required development time and effort: workers at multiple locations, workers in multiple time zones, and workers from multiple cultures. Any project run in India and directed from the West will have all three cost factors. (This is before you add the tendency to find people working as developers who really shouldn't be.)

Finally the absolute biggest challenge in software project management is getting accurate information about what is not working to the decision makers who need to know it. I like this humorous take on that tendency. For whatever combination of reasons, be it desperation, culture, or a belief that the customer is right, this tendency is worse in projects that have been outsourced to India. Sometimes to a comical degree.

The result is that there is a strong tendency for American companies to succumb to the siren song of low wages, outsource work to India, and then for the outsourced projects to turn into disasters. (But the extent of the disaster is not apparent until after Americans have lost their jobs.)

The other way that companies go is to hire Indians into the USA on H1B visas. This gets rid of the remote worker issues. Many Indians want these jobs because salaries are higher in the USA, etc. And there are more than enough truly excellent Indians out there to fill all of the available jobs. But there is a problem. American companies hiring on H1B visas are required to swear up and down that no Americans were available for the job, that the hired person is being paid market rates, etc. But someone on an H1B visa has a hard time switching jobs. This gives the employer a captive worker. And leaves no market incentive to actually treat those employees fairly. This gives companies strong incentives for dishonesty. Too many succumb. The only thing limiting the rate of abuse of this program is that there are caps on how many H1B visas are granted each year.

As an American I have no problem with the best and the brightest coming to the USA. Quite to the contrary, that is what built this country. But treat them equally once they arrive. For instance I know a person from the Philippines who, due to his visa status, has had to turn down job offers from Google, Apple, and Facebook. For about double what he is currently making. If the market was allowed to set the salaries of people like him, there would be a lot less incentive for companies to try to abuse the H1B program.

So there is my opinion. For a number of reasons, outsourcing projects to India frequently leads to disaster. The ones you get as H1B workers tend to be excellent, but that program is heavily abused in ways that make me sad.