I recently found this post on Quora:
I once decided to try staffing a major project with contract developers in India. It was the longest year of my life. I specifically remember a PHP program that had three deep loops because one guy didn’t know how to do an outer join. I had to quiz each developer on their particular part of the project, often having to move on to a new contractor when one proved incapable. There a huge holes in their education.
I will add that I’ve not had anything but good results with Russian contractors. If anything they tend to write overly engineered code, anticipating external hardware and data failures that don’t have a ghost of a chance of occurring.
Even with the best of contractors, it’s no great bargain. The communication difficulties (God help you Google Translate gets it wrong) and the extra co-ordination makes it a wash. The communication problem is actually worse in India as they think they speak English.
Better to develop a relationship with twice as many contract developers as you will need at any one time. Pay them fairly and offer cash incentives for good and timely work. Make your specifications EXACT, if you ask for the wrong code, it’s on you.
I always sponsor my people’s kid’s athletic teams. I really enjoy going to a U10 soccer game and taking the team out for pizza after. That’s hard to do when they’re a world away.