Outsourcing Works

Many people have asked me for some tips on outsourcing, especially more serious things than birthdays and flirting. These days it can be nearly impossible for a small sized tech company or an individual looking to start a startup, to recruit engineers and developers in the competitive markets of cities like New York SF.

Aside from all the other small startups you are competing with, you are directly competing with the Googles, Facebooks, Twitters, and Foursquares of the world. And if a developer doesn’t want to go work for one of them, it’s likely because he wants to try his own startup, which means even more competition for talent.

Don’t fret though, there are lots of talented freelancers out there, and in many situations, I prefer them because being a freelancer means that they have to have a wide range of skills. For example, a freelancer does not usually have the luxury of doing only one part of development like back-end or front-end, they have to do both. They have to have skills in wide-ranging areas in order to deliver a “complete” project themselves. Their experience also leads them to know how what to ask and how to make sure that your vision can be realized. Many developers who come from established companies have only ever received technical instructions and can quickly become frustrated with you if you don’t have a thorough understanding of the way software development works. However, a freelancer who has thousands of hours logged, has to have at least a few hundred hours of experience dealing with people who are probably even less-technical than you. This makes them better able to work with you and get you going in the right direction.

You don’t need to drive yourself crazy over finding a developer or give up on your project, because outsourcing works. Outsourcing definitely works if you know what you are doing, but it can go awry if you don’t, so I will give you some tips on how to make sure you pick the right person.

How to Find the Right Outsourcers

After a few bad experiences with outsourced developers, I realized that it was just me choosing people who weren’t right for the job. The key is to make sure you find experienced people, with a good track record, from the right region, who can actually understand and speak English. You want to find someone who is a full-time freelancer, not someone who has does it on the side. Fortunately, there are a lot of extremely skilled engineers who work as full-time freelancers at an affordable (~$40 per hour) rate, you just to have to know how to find them.

These days, I prefer to use oDesk because I can create a project and then invite selected developers to interview for it. I’ve used sites like Freelancer.com in the past, but I do not like the “post your project” format because you get tons of crappy devs bidding on your projects and it’s a race to the bottom on the pricing. I rather pay a fair market rate and get a much higher quality project. I do not like to skimp based on prices when it comes things like safety equipment or software development because you generally get what you pay for… If you do take bids from the public, make sure in your posting you specify that they use a certain word like “Banana” or something, as the subject line, so that you know they did not just automatically submit a bid.

If you are looking for someone to do an important job (i.e. not having someone yell loudly on a bus), then you want to make sure you can trust this person with your time and money. Make sure you pick someone good and not just the first person that responds and says they can do what you are asking. Always do a Skype interview, with voice or video chat if possible, because many contractors will say “yes,” that they understand what you are asking for, but will really have no clue what you are saying. Make sure they can repeat the project scope back to you in their own words.

Once you know they actually understand you, test their knowledge as if it were any other interview. Check their past work and comments from their profile. Ask for references or people you can talk to that they’ve worked with if there is not enough information on their profile. Ask to see the projects from their portfolio, and make sure that the project is actually theirs! I have seen developers not only lie completely about having done a project they show, but sometimes they will find an associate who has made a similar project, and then claim it as their own. You also want to find out what other projects they are working on, how many hours they can commit to you per week, what their working hours are, how often they push code, and questions like that.

When I first started outsourcing, I always wanted to work with a project rate, but I now prefer to do an hourly rate. The reason for this is because the project always ends up being more than expected and you are probably going to want to make changes. If it is under an hourly rate, they are happy to modify the plans. But if you work with a project rate, they may get frustrated,  angry, or not want to continue the contract anymore. You don’t want to be stuck with software you aren’t happy with because you couldn’t make necessary changes. If this is your first time developing major software, I can promise you there are going to be changes, so I highly recommend an hourly rate with a weekly cap.

Outsourcing really does work and is not something that should be overlooked. You can use the global economy to your advantage and put the power of people to work for you. It is amazing that we now have the marketplaces and tools available that make it feasible for us to collaborate with people across the world. Whether it’s for high-end software or for yelling loudly on buses, don’t miss out by not outsourcing.

Don’t forget to