PS: I took too long to edit the post
@EMP didn't know you were an IT project Manager.
Blind Ape Seo » Requirements and you <-- this is a good one..
Plus I will share couple more things:
Indian Programmers need a Business Analyst to be able to write good code. And they need a really good BA. Rhey usually code exactly the way the requirements are defined by the BA, so the BA can't go wrong. So you need to be able to write the requirements yourself, or hire someone to do it for you.
You can't just send off an Email with a rough Idea of what you want.
You need to break down your requirements to the finest details.
Create every possible use cases.
PS: At my day Job I have managed Great American Developers, Some great Indian Developers, BSAs, and some mediocre Indian Developers too. And I could manage to squeeze out real great code even from the Mediocre Indian Developers. It is all about the "Details" in the "Requirement Definition" and thorough Testing of the Functional Requirements. The American Programmers usually don't rely too much on the BAs (business Analysts)
Also, even today, in most Outsourcing engagement (Multi million multi year engagements), The Business Analysts are usually Americans, or if they are Indians, then they are usually MBA from top B schools and are paid a lot more than the Programmers, unlike in the USA where a Programmer and an Entry level BSA are paid the same.
In India, an entry level Business Analyst makes upto 4 times an Entry level programmer. So, there you go.
And example Requirement Definition will have "Click this Button or link to got to page 2"
Oh and Indians hate Flower boxes and comments. There are processes, like multiple level code review, in place to make sure that they Add comments, otherwise they won't.