I'd agree with the linked article. For most serious skills (beyond basic HTML markup) you need to pay $15-$25, but the results we've got have been top notch.
Here's what we've learnt:
* Only hire people to do stuff you understand. You don't need to be an expert on it, but you have to be able to understand what you are speccing and what you are getting.
* For anything beyond basic HTML we've never had success with a company from the Indian sub-continent. For basic HTML stuff we've had good results.
* Our best results have come from Eastern Europeans, but we've used people from the US, and western Europe as well.
* For many projects we hire people on an hourly rate. There are exceptions - if we have a really clear spec, and it's a side project (e.g. we need some flash client work) then we may do it fixed price.
* Deal only with individuals - ignore companies. They only exception might be a small bunch of 2-3 hackers working as a team.
* As with any form of recruitment - there are good people and more bad people. As with buying on ebay - look at feedback, and use your judgement.
* If you're looking for people on an ongoing basis, then be prepared to interview and test them thoroughly. When hiring C++ coders we actually pay people (as a elance project) to do a 20 hour long programming test. This might cost us $400, but we prob take on 1 in 2 people who get this far. So an $800 hiring cost is cheap, especially if it gets people up to speed on your technology. We normally get them to right a cut down version of our actual project.
* You need to monitor people regularly and manage them as you would a physical employee.
* Give people respect, and deal with them fairly.
* You have to be good at working virtually. We make extensive use of Wikis, Trac, Skype etc and this enables us to manage a virtual team well.
The benefits:
* For about $20 an hour ($40k per annum) you can get a top class programmer that would cost you $100k an annum in SE England, or the West Coast. But you have no hiring cost and no long term commitment.
* We typically can put an advert on elance Monday, be interviewing by Wed, and have taken someone on by Friday to start the next Monday. In the old world it would be arguing for budgets to hire for a month, spending 2 months interviewing, waiting 1-2 months notice period.
* We can very quickly bring in specialist skills. E.g. if I need a Silverlight developer, I can find one who can start within a week, and can terminate when the project is done.
Here are my rules with for working with Indian companies:
1. Never outsource the whole project or even a majority of it. I've seen companies do this because it's cheaper than hiring a staff of full time in-house developers. The projects usually fail.
2. Never ask them to do a task that you wouldn't know how to do yourself. You should never outsource a key piece of technology just because you don't know how to do it. You should only outsource something if they will get it done faster than you can or you want to work on something else. You will still have to review and test every line of their code to keep the quality up.
3. Expect communication issues. From my experience, Indian consulting firms try to communicate the best they can but you do have to stay on top of them.
4. They are much better at coding than they are at design. I've always been happy with the code they produce but not with their graphic design abilities. Never leave the UI design up to them.
I'm a single founder of a startup and the only way that I'm going to get my product off the ground in 30 to 60 days on a shoe-string budget is to outsource pieces of it. If you want to keep up with my progress then go to http://sqlmover.com to sign up for the private beta that is going to be launching next month.
I guess there needs to be a #5 - Outsourcing is a competency in itself and can be hard. People have different experiences and offer conflicting advice. If you do it often, you will find ways of doing it better. If you just need to outsource something once, it may not be worth the learning curve or risk.
Generally what I do is to make a class diagram and then hand it to an outsourced coder to create. That way there's no question of what is supposed to go in and what is supposed to come out and I can test it easily. Plus that way allows me to keep track of which pieces I outsourced so even if I get a bad coder who writes inefficient code I can go back at a later date and correct his work.
http://www.kalzumeus.com/2008/03/02/my-experience-with-outso...
Does that mean you found those sites less useful than the direct approach? Or was it simply that you were already getting a lot of unsolicited job offers in your blog comments and felt you had a big enough pool of talent to draw upon directly?
eLance, et all, fundamentally solve the problem "A customer has work available and doesn't know who can perform it to their specifications at their price point." For that, they take some money and give some headaches (e.g. wading through a lot of bids by companies which I would not consider using, which is a time cost of outsourcing that provides no direct value to me).
As my blog readership has grown, I've gotten to the point where just announcing I have work available will result in a handful of very talented people writing me telling me how they plan to do it. No middleman cut, no paging through 17 screens of Yes Sir We Can Make Your Site In HTML and CSS.
I love outsourcing, and I mostly love the freelancer sites. I just have a better alternative these days. If I didn't I'd be back on them in a heartbeat.