Experience outsourcing development though oDesk?

Murali Sangubhatla Co-founder at 500 Miles

May 5th, 2013

Does anyone have experience outsourcing development through oDesk? List of best practices with various decisions would be useful.

1. Hourly/ Fixed Project
2. Specification & User Experience design before or during the project work?
3. Level of detail necessary before and during project work

and any other recommendations you might have. I have an android app prototype that needs to be productionized and integrated with web, to launch.

Blake West Software Engineer at Hint Health

May 5th, 2013

I'm actually always a fan of "paying for features, not hours". But the key is to make sure that every feature is very small. Don't pay them $3 grand and say "build my site". Instead find jobs that are measurable and maybe 5-20 hours/work at a time, then pay for that. Perhaps it's "get login functionality working", or "Fix this list of cosmetic changes", or "add PayPal payment option." But most of your project can likely be condensed into smaller units like this. In fairness to the contractor, you can be willing to build in a 15% buffer either way. 

The reason this type of thing is helpful is it helps reduce your risk. If the guy is slow, that won't harm you. If you miscommunicated and it requires some back and forth, then it's usually much less harm. If they make silly mistakes that don't follow your mockups, you can just point to that, and say, "this is what we asked for, so this needs to be fixed" and you don't get charged more or feel weird asking for it. 

Guarav is right that more $$ usually means less hand holding necessary. Make sure you know what you want though. You should be able to hold their hand if needed. 

Gaurav Sharma

May 5th, 2013

1. Hourly, especially if it is a prototype/early version. 2. Work on the UX, wireframes and even the high fidelity designs before project starts. 3. Depends on the developer you higher. Usually higher they charge, less specifics and details are needed. Interviewing people is a pain on odesk and takes time. Post only when you are fully ready because if you delay things, your choice of freelancer might take up other projects and you have to start the process again. -- Gaurav Sharma (650) 450-9301

Brendan Duffy Product Manager

May 5th, 2013

I have quite a bit of experience with Elance, and none with Odesk, but I think the communities are similar enough that whatever applies to one site also applies to the other.

I'll second Blake's input w/r/t project size. Break the required work into small tasks.

1. I would recommend paying on a per-task basis. Anybody who's got experience will likely give you an estimate based on the number of hours they think it will take them to complete the task. But paying for the task and not by hour places the risk of overrun costs with the contractor, and not with you.

2. Lay out as much as you possibly can, in as detailed a fashion as possible, before work commences. Ideally, you'll have all the necessary materials (spec, wireframes, images, ect.) on hand prior to the estimate (though some devs will prefer a simple high-level spec for estimate purposes). The more you leave open to interpretation, the higher the chance of a back-and-forth between you and the contractor. This will eat up your time, and may result in overruns. If you get into this situation (I'm speaking from experience here) you may find yourself with an incomplete product, and a developer who refuses to do any more work without more money. 

3. Again, more detail is better. Also, if you have a designer you're working with, I'd recommend you get delivery of all of the necessary visual assets prior to having the contractor start development.

Here's my general take on using Odesk/Elance developers:
Their incentives are not well-aligned with yours. 
 - They simply want to deliver a product that's good enough to ensure (i) that you pay them the agreed upon amount, and (ii) that you don't hammer them when rating the quality of their work.
 - You want to develop and deploy a top-quailty product--one that's gonna get noticed in the crowded world of mobile apps. 
For this reason, I'd recommend Odesk/Elance for the development of a prototype/MVP, but after that you're going to want to team up with somebody who can handle your product's technical requirements.

Jonathan Perle

May 12th, 2013

I've had bad experiences with Odesk.  The quality and reliability have been generally very poor.  You need to be very, very detailed about precisely what you want or you wind up with something completely different than what you are looking for.  Also, judging the quality of the people on the system is very hard.  A friend of mine has a new startup called Neulantis where he is only allowing highly skilled (verified) and senior people into the community.  I found a developer through his site and have been very happy with the results, though I will note that because the caliber of the individuals is very high the prices are likely to be higher than an Odesk or Elance.


May 14th, 2013

It could be only my experience, however I've tended to have better luck with Elance than oDesk for technical resources.  I generally try a new contractor out on a small, fixed-price, task/project.  The result of that task/project usually provides me with what I need to know about the contractor and whether or not I'd want to continue working with that contractor on a longer-term basis.  This approach has worked better for me than trying to pre-qualify a new contractor from a technical perspective, as my experience has been that most of the contractors that apply for the job fall into one of two groups.  The first group is sending a form letter, which are weeded out pretty easily.  Those in the second group all seem decently qualified.  I try and segment the latter group again by asking for 1-3 examples of similar projects they've completed.  That usually helps narrow things down as well.  Regarding pricing, I've usually found that it breaks into three tiers: really inexpensive, moderately expensive, then more expensive than I'd expect/want to spend.  Moderately expensive seems to fall between 2-3x more than inexpensive, and more expensive than I'd expect to spend is usually about 3-5x the moderately expensive group.  The Moderately expensive contractors usually do what I need, except in the case of Linux System Admins.  I've had a great experience working with Linux System admin from the inexpensive tier, who was trying to break-into eLance. Hope some of that's helpful.

James Bond CTO at SupplyBetter

May 5th, 2013

Haven't tried oDesk yet, but I had a pretty good experience with Elance. I'm sure YMMV, though. I think both hourly and fixed price can work -- there's no right or wrong answer, it depends mostly on how detailed your specs are, and how much energy you want to put into managing. And whether you're competent to direct programming work -- if you're not, you may be better off with a larger shop, with local management that you interact with, rather than trying to supervise a solo coder directly.

My main advice would be to try people out on a small project first, so you can assess both the working relationship and the quality of work produced, before making a long term or large financial commitment.

Michael Levinson Product Executive, Marketplaces and Payments

May 5th, 2013

(I was early at oDesk and ran product there for about four years - if you want to chat about this in more detail offline, let me know)

On hourly vs. fixed price: I tend to recommend fixed price only for small, discrete projects with super clear requirements.

In the case of the OP, that doesn't seem to be the case. You need a developer to work with you until it's done. That's a hard thing to estimate, so if you go with on fixed price you're going to pay for insurance - padding that the contractor adds in case the scope turns out bigger than anticipated (as it usually will). In other words, fixed price provides a false sense of security: yes you can be sure that you won't "overpay", but if things go awry, you run the risk that the contractor will walk away before you have what you need.

A better approach IMHO: find someone you trust, who works with you effectively, and who has the skill level you need - and pay him by the hour (or the week). To make that happen:
1) Hire more than one contractor - the best way to evaluate a developer is to work with him on something real
2) Start with a test project (see #1)
3) Don't go with the cheapest option. You'll get what you pay for. Expensive for oDesk is $30 - what would it cost if you hired locally?
4) Don't settle - if someone isn't good enough, or you just don't work with him well, move on to someone else
5) Treat your developer the same as you would a local employee. Communicate, manage, set high standards, etc. Brendan's point about incentives is only true if you treat them that way.


Murali Sangubhatla Co-founder at 500 Miles

May 5th, 2013

Thanks Gaurav, James, Blake, Brendan & Michael. 

Good to know about Elance. The key is to:

- Try to get more detailed specs
- Build wireframes
- Break it down into smaller deliverables
- Find good working relationship(s)
- Pay for the features & work

@Michael - That makes sense and clarifies the vagueness I had around fixed projects.

Great insights! Thanks a lot.

Aravind Nirmal Kumar Formally Informal

August 15th, 2013

Sometimes it would help directly finding developers / development companies through google too, as the quality from difference lancing sites may not be up to the mark.