Even the Indians are outsourcing. I occasionally work with some software companies out here in Shanghai, Mphasis for example, that are coding for Indian headquarters companies back in Mumbai, on software development projects from the US and Europe. The English language skills of local Shanghainese are too low for them to interface directly with US clients - but they’re cheaper than Indian coders, and the Indian project managers can make bigger profits.
But lower costs are only part of the reason, as the Indian managers at these Shanghai branch companies tell me that competition in India for key IT skilled personnel in certain disciplines is so intense that they are forced to outsource to China.
As for quality, in it's U.S. heyday any programmer with a pulse could be guaranteed a job. Well the demand for IT resources hasn't diminished, it's just gone overseas. It doesn't surprise me at all that India has the same problem finding and retaining quality people that the U.S. used to have, and that they're dealing with less and less competent people.