From my own experiences, if you are coming from Europe, the US or some other country of the so called "first world" and think about outsourcing programming tasks to India or some other country, the best thing is to start small.
Think about some limited task which can be defined very clearly and pass it to some programmer of your choice.
Get a clear quote first, and ask when you will get the first results and when the job will be finished.
If you are not happy with the results, point out clearly what is not ok, and give some time for making corrections.
Mind that there is usually some time difference between your country and India. Allow for some delay. After all, you are getting work done for low rates as compared to "first world" payment standards.
As this is offshore programming, you cannot see when the programmer is working for you, how he is working, you cannot even know if he did not pass the work to some other programmer. This should not bother you. Stick to the "management by results" principle.
When the work has been finished, pay fast. If the work done has grown into more than you initially asked for, but agreed to the improvements, pay more than you negotiated.
When you found some programmer or programmer team you can come along with (and vice versa), extend the business relationship.