Communication and cost are the main problems.
Usually clients have a hard time explaining exactly what they want and our visions might differ. When I turn in results, they are often different than what the client first imagined they'd be, but through iteration and conversation I can help the client clarify what they want or realise something else 90% of the time.
Time is another big problem. When you want something done in X time, I will do my best to catch that time. Sometimes this means discussing with the client until the feature list is cut down to a deliverable size. Other times it means sacrificing future flexibility of the code. I always try to get the best balance between "speed - quality - price" for what the client needs, but it's easy to miss.
Almost always, clients have an unreasonable expectation of what is possible.
I'd say at least 70% of my job is helping the client decide what they even want me to build for them.
Disclaimer: I have never worked through any of the sites listed in OP. My main source of clients are HN, my blog, twitter, and past clients.
I've also learned when to recognize that the clients are looking for speed/volume vs. quality. I know there are often tradeoffs but some clients just really don't seem to care about quality; they are middlemen who just want to throw something over the fence to the client.
Quality of the workers or the turned in work is directly linked to the budget of a project. I've had many conversations on both sides of the table, where there was a miss-match and an eventual agreement to either bump up the budget or to lower the expectation. There's still risk in eventually receiving lame work, but I don't think that is the status quo.
There is a larger than obvious amount of bot or automatic submitters tainting and lowering the overall quality of the pool. It is very easy to sort them out, but it is noise nevertheless. Quality filters and machine taught spam detection would deal a great boost to overall usability of all of these sites.
Now, communication and missed deadlines will deviate wildly because most of the developers are not able to sustain a living doing just elance, odesk or whichever. Honesty and setting expectations at the beginning usually solves this problem. Now, there has been a steady build up of downward pressure from contract owners to expect full availability or a similar version there of. Most of them don't have the budget to back it up. Shit happens.
I found and worked with talented folks through 3 of the 4 mentioned sites and I would have to say that it is not an issue. The issue is actually finding them in short time, and that's where buck stops in my point of view.
I think there is a large opportunity to impress the market by shaving off the amount of time to find quality devs and firms. I think other sites have began doing something along those lines by curating the offers and doing away with the meat-market environment.
Overall, I think the budgets are low, developers pick up multiple gigs, some projects get delayed or rushed and compromise is the name of the game.
Elance could make it easier to find top providers if search results could be sorted by skills test results.
For whatever reason they choose not enable that feature.
This would not solve the problem of (1) slacking off - poor work ethic, and (2) bait and switch - putting a less capable person on your job.
Secondly, on every job/bid ,personalize your communications with the employer. Don't send standard bids/messages that i am the best, i have done this this this etc. Make the employer understand how you are best for THIS job. make them you realize you know what they want and that you know what you are talking about. Tell them about RELATED previous projects. Giving them a feel that you are an expert in this sort of stuff helps a lot. A good personalized communication helps beat many mighty competitors with tons of reviews under their belt. I did that several times and it plays well with people's fears that a big shot freelancer would not dedicate his time to my project.
Thirdly, getting that first job may take a long time. Don't lose your hopes. that's just how the freelancing community works. when you don't have any reviews things get tough. But that is exactly when that personalized communication comes in very very handy.
Lastly, don't be afraid to demand some protection from the employer. it's your right. So make sure the employer puts the money in escrow before you begin any serious work.
One piece of advice, and just not about oDesk. Do reasonable work, don't silently miss deadlines, and always set expectation and communicate (never hide).
I've worked for some big-name Valley companies. If you just follow the advice above, you will be far ahead of the pack. (And that's even more true in the freelance world.) Good luck.
If - nay when - you screw up, admit it right away and figure out how to fix it. It really will make a huge difference in how useful you are. Goes for other parts of life too.
Step 2: Do what you said you would do, by the time you said you would do it, for the price you said you would do it for.
Step 3: Tell the client that you've done what you said you would do, by the time you said you would do it, for the amount you said you would do it for.
This alone would make you a stand-out in the world of free-lancing. For bonus points, keep the client updated regularly via a single page report, at least weekly, of your progress, of project risks, and outstanding issues.
Just something that proves you know what you're doing.
I haven't hired developers, but I've worked with several writers. Quite a lot of the ones I've worked with didn't have previous work experience but they had sample articles uploaded for me to judge their skill and style.
The top workers finish projects and can communicate.
I opt for the niche job boards such has http://www.gun.io or http://www.djangojobs.net as I can find good talent and it's much easier to screen people when I can hope on the phone.
There's a real problem finding devs with softskills and so far it's a pain point that no one has gone after.
mjhea0, how do you typically structure projects after you've found someone who is a good fit? Do you use any additional services like invoicing, github/bitbucket, bug tracking, etc?
depending on how big the project is, i typically use trello to project management and i've built my own invoicing system. i usually use git labs for private repos.
but again, my main concern is whether they can get the project done. for me that comes down to communication. i've noticed that in other cultures, if they don't accomplish anything, they'd rather not tell me. it's taken time, but i've been able to really pound it home that it is vital that i know exactly what is going on in case i need to jump in.
I find trello pretty effective for daily goals. In terms of a mature bug tracking system, I'm a fan of phabricator. For invoicing, we use envois (https://github.com/lambdal/envois).
Agreed, communication and expectation alignment are critical components of avoiding "never-ending contract syndrome"
best wishes + happy hacking
i hope to see a cross between a dev shop and a job board in the future.
One of our objectives is to bring the certainty and assurance that top companies enjoy with full time staff, to the talented, nomadic hackers of the world, while preserving hackers' needs for flexibility, getting paid what they deserve, and supporting best practices (unless you're a fan of submitting that .zip file on odesk -- nothing hurts me more).
To answer your question about retaining talent: One of the reasons I seek ephemeral opportunities (and I suspect there are others like me) is I appreciate flexibility; working on various projects which interest or challenge me, with different teams, on a schedule which works for me. I don't anticipate 'solving' the problem of attrition directly as much as I do finding creative, safe ways of working around hackers' preferences to achieve the most beneficial outcome for all parties involved. This includes experimenting with strategies like structuring missions around teams of hackers to mitigate risk.
That said, there are several things we're doing for our hackers to be deserving of their loyalty. First and foremost, we don't charge our hackers any fees -- all of our fees are client facing. Why? I complete missions on behalf of Hackerlist, I don't want fees and I don't think it's right to hold more talented technologists to a different standard. Second, we're giving equity in Hackerlist to the top 4 performing hackers in our first batch. Finally, we have a team of mentors available for advice and guidance.
In terms of finding and vetting experts: We have a board of mentors with specialties in different areas who are assisting in the screening process. I also bring my own expertise, being a 2-time founder, having a partial PhD in AI/NLP and having led technology (and a good deal of technical recruiting) efforts for two YC companies (Hyperink, Ark).
It's worth nothing, we're only accepting 2^4 applicants for our first official batch (so far there's 700+ applications) specifically so we can address and tackle these quality issues head-on and provide our hackers the best experience possible.
TL;DR - no fees to hackers, they keep all their earnings - high price points - we handle invoicing + vetting (clients & hackers) - we have a strong network of mentors to control quality - we're good to our hackers and aim to build a custom experience around their needs.
best wishes + happy hacking
One thing that bugs me is that none of them have good apps - you would think they would figure that out!
All of these sites have good workers, and all of them have workers who will turn in shoddy work, hoping you won't notice. I've hired for more than a dozen projects and in no case did the contractor do the job right the first time - because they didn't care enough, not because they were incompetent. I've hired workers in the US, in India, in the UK, and elsewhere. Same sorts of issues crop up. (I was eventually very pleased with the results - it just wasn't as smooth as presented by Tim Ferriss or whoever.)
Poor communication and missed deadlines are the rule. Also watch out for bait and switch: for graphics, for instance, the individual who produces a firm's portfolio may not be the same one who will work on your project.
Identifying talent, and managing remote workers, is a skill that can only be developed with time and practice. It's much more than a question of picking the right marketplace. The reviews are not trustworthy. If possible, try to get recommendations for specific workers from people you personally know. Because the great workers are out there, among the masses.