Web developers seem have mixed results with outsourced knowledge workers. Time and culture differences can make things a little messy.
1. Rather than general outsourcing job sites such as eLance or RentaProgrammer, look at specific online communities. If you are looking for a vbulletin mod, go to vbulletin.org. If you need a programmer for a single job, you might as well find someone who already has expert experience in the area you need work done.
2. Talk directly. E-mail and forum PMs are horrible methods of communicating in a timely fashion. 15 minutes of questions and answers can be stretched out to weeks. AIM, ICQ, MSN, Skype, and the good old telephone are your best friend.
3. If you can pay for a full time programmer, do it — and make sure its through a managed company. Per-job programmers are spending a lot of time and energy on looking for more work. If all that energy is focused on your projects, you’ll be better off.
4. You want a programmer with solid development experience, not someone who has been inserting php scripts into tiny websites for the past 5 years. Development experience means they’ll handle the minor stuff just fine — and excel at the difficult stuff.
5. Don’t cut corners to save a few dollars. If $1000 cheaper means 3 months of delays, its not saving you any money. Add up the delays and you will soon find yourself years behind where you should be.
6. Start simple. The more features you have, the harder its going to be for your programmer to finish the project. The harder it is, the longer it will take. If you are having a web-based tool programmed, have the core features running as soon as possible. Have users test it, then update the specs based on the feedback. The fancy features you believe are a must have right now may be completely unneeded.
7. Treat your programmer like a real person. Just because they may be 5,000 miles away doesn’t mean they don’t have a family or like having fun — just like you.