This has been my experience too. If you specify exactly what you want down to every little detail, Indian teams can write the code. But if anything is left hanging at all, you get results that are subpar.
My take away from working with graduates of Indian universities, both abroad and at home, is that these schools do not impart critical thinking skills as well as they should. This definitely hampers employability for many grads.
The problem is that because software is this ethereal invisible thing, no one can measure it or it's quality.
We know the off shore code is crap. After all, 9 times out of 10 we're the ones who have to fix it even though it will still be chalked up as a success for offshoring.
If they were offshoring something real, that they could look at and see the faults, that they could get their hands on, that they had to drive their cars over... they'd be screaming blue murder, and price wouldn't come into it.
I don't follow. How is it capitalism's fault that India produces large numbers of bad engineers? You seem to be conflating the fact that capitalism (specifically, cost-cutting) leads to these engineers being employed with the fact that their education is lousy.
I'm not sure if that's fair. If you produce a labor-intensive product of such variable utility (engineers), then you would expect the utility to drop to reach a price equilibrium. If there wasn't a demand for crappy engineers, the quality would rise - along with price.
Therefore, their education is lousy precisely because these engineers are employed.
India may just have conditions of production, whether by providence or design, that are more efficient at producing minimally satisfiable engineers than anywhere else. Of course I'm talking about a hypothetical India that produces engineer shaped widgets - so no offense intended:)
"India produces large numbers of bad engineers" - that's a sweeping statement. Among all countries, India sends the largest number of engineering students to the US (according to NSF - http://www.indianexpress.com/news/india-sends-maximum-number...), which is not bad for a country producing "bad" engineers. I am a professor in a US university, I work with a lot of technically trained undergraduates, and I can say that students here (as anywhere) when they complete their undergraduate education, are merely ready to become an apprentice at a company. Their education continues in the company (or research lab) they join. So when you compare recent Engineering undergraduates from different countries, I am willing to bet that their quality is on average not that different.
I've worked with some engineers in India that aren't getting good salaries. They were much smarter than some people in the US that are getting good salaries.
Salary, in my experience, really correlates with nothing. It doesn't make sense, but that's my experience.
Well, obviously you've been using horrible developers (you can find them in your home country too).
IIT's are not your average university. Digest this: 34% employees at Microsoft, 28% at IBM, 17% at Intel and 13% at Xerox are of Indian origin.
Gates warned US congress on H1B visas, "U.S. companies simply will not have the talent they need to innovate and compete," and all those Indian students receiving their education at U.S. universities will have to leave, to the detriment of US high tech companies
It all fits together now. That's why so much code that is farmed out to India comes back looking in such sorry shape.