Tuesday, March 26, 2013

How to Reduce the Risk of Outsourcing on ODesk, Elance, etc.

Outsourcing app and website development is a popular option for start ups that want to reduce cost. But before you hire that programmer for $15 per hour, here are some things you can do to reduce the risk of getting a bad egg.

These apply to startups that are looking to outsource to an individual via a website like ODesk or Elance.

Add something unique to your job posting to pre-screen candidates

When you post your job on a site like ODesk or Elance, you are going to get A LOT of people applying. Most of these are people (or robots?) that apply to any and every job posting, and are the people you DO NOT want to hire. One way to pre-screen these people out, is put somewhere (not at the very top) of you job description something that says:

Please add SUPERMAN to your application to be considered

The people who don't read the actual description will of course leave this out and you can simply reject them immediately.

Beware of people less than $10 an hour

It might sound like a great deal, but trust me, it's not worth it in the end. I found that people around $15 /hour are capable of doing the work but are not going to very efficient and are going to need a lot of direction. Somewhere around $25 /hour is the sweet spot for competent app developers and a little less for website developers. (This is based on contractors from outside the US!)

Talk to the person on the phone before you hire them

Communication is VERY important and you want to find out before you hire someone if there is going to be an issue. Email is not enough. If you're in a time crunch or just can't explain something over email, then you need to be able to call the person to speak to them directly. Skype is a great tool for this and is a favorite for many outsourcers.

Have some code and software already in place (IMPORTANT!)

This is one that most people never consider (especially if you're not an engineer). There is a lot of software that you can use to setup a workflow for contractors to mitigate risk. Here is a list of the bare essentials:
  • Version Control (GitHub, SVN, Mercurial, etc.)
  • Continuous Integration (Maven, Hudson, Jenkins, etc.)
  • File Sharing (Basecamp, Wiki, Confluence, etc.)
  • Task Management (JIRA, Pivotal Tracker, etc.)
If you are a programmer or you have one on staff, take the time to get these systems setup and in place before you hire an outsourcer. They will save you a lot of time and headache in the future and streamline the outsourcing process.

If you are not a programmer, I recommend hiring one for just a week or two in order to get this setup. This person will likely be a bit more expensive but it will pay off in the end! You'll get a better quality product quicker.

Since I think this one is so important, I will be posting a blog post solely about this in the future.

Give multiple candidates the same trial task

When you give them a trial task, make sure you are utilizing all of the software that you have in place from the previous section. This assures that they know how to use it and can get everything setup correctly. If you have your version control setup properly (with branches), you can easily assign multiple people the same task without the risk that they are using other people's code from the same task.

A lot of people are ok with doing the trial task for free. Make sure that it is very small (should only take a few hours to complete the actual task) so they don't refuse to do it for free. The benefit of this, is that it takes an hour or so to sync the latest code from your version control system and to get everything setup on their PC to be able to work. This is time they are spending that don't have to pay for!

Review and manage them as often as possible at first

With the correct software in place, this should take you now more than 30 minutes per day. It's very important to do this as much as possible (daily) for the first week or two until you know your programmer is working effectively.

Setup a method of communication that works for both of you

It's not just important for you to be able to reach the contractor, but important that they can reach you as well. After you hire them, let them know the best way to communicate with you and the process of receiving tasks. If you have a good task management system in place, all task assignments and communication can go through there. You will add a task to the system, they will report on the status and add comments if they have any questions. It gives one method of communication and allows multiple people to monitor the work (oppose to email).

Conclusion

These are some of the big ones to help with outsourcing. I will elaborate on this as well as provide some additional tips in upcoming blog posts. Stay tuned!