I have some of the same experience. If you outsource to a consultancy company, things are less likely to go well. In my current job we have an office in the area, and some of those programmers are excellent. It is harder to find good people though. You really need the fizzbuzz test there, but good people exists.
In a previous job I had some coworkers that had previously developed a system for a major European telecommunication company. The project was now mainly in the maintenance mode, and they (the telecommunication company) decided to move the maintenance to an Indian consultancy company, and my coworkers would only help with the transition. The result was that my coworkers got more work to do than they had before the transition, and this never ended. The new developers was simply unable to get anything working. Part of the problem was that there was high turnover and many inexperience developers, but not only.
In the end the project was moved to the telecommunication company's own employees in China. That actually worked really well.
This is only a few cases, but it is my experience that having an office in India often works well, but outsourcing to a consulting company is usually a bad idea.
A few years ago, we saw the same problems with turnover and lack of experience and hesitancy to say no or admit it when they didn't understand the requirements. It was a small consulting company and our boss wanted to go with them for the cheap rates. I've worked with many great Indian programmers here, and I imagine most of the really good ones in India are much more gainfully employed than those in the small mediocre consulting company we hired. I think the outsourcing boom and bust a decade ago could be largely blamed on companies chasing after a gold rush of cheap talent, assuming there was a virtually endless supply thanks to the large population. In trying to get something for almost nothing, they forgot all sorts of other costs.
In a previous job I had some coworkers that had previously developed a system for a major European telecommunication company. The project was now mainly in the maintenance mode, and they (the telecommunication company) decided to move the maintenance to an Indian consultancy company, and my coworkers would only help with the transition. The result was that my coworkers got more work to do than they had before the transition, and this never ended. The new developers was simply unable to get anything working. Part of the problem was that there was high turnover and many inexperience developers, but not only.
In the end the project was moved to the telecommunication company's own employees in China. That actually worked really well.
This is only a few cases, but it is my experience that having an office in India often works well, but outsourcing to a consulting company is usually a bad idea.