Effective Outsourcing

Effective Outsourcing

For the past 10 years I’ve been helping people develop their technology ideas. Sometimes I’ll write software or build hardware for them myself, but more often than not I’ll recommend they outsource their projects. Since I’m frequently asked for guidance in this regard, below is a list of steps to follow when outsourcing a software project.

8 (Mostly Obvious) Steps To Follow

Define

1. Define what you need, honestly, with a multi-page software/technology outline in writing. Many projects fail because project owners don’t put the time and effort required into this. For small projects (<$10k budget) you should expect to invest 20-40 hours writing your software outline. Don’t skimp on this or you’ll be doomed to failure.

Redefine

2. Find a friend who is an expert programmer (or hire an consultant) to help you rewrite your software outline from Step 1. Your revision should include information about the skill-set and experience you require in a developer. Your revision should also include a development “expert timeline” indicating the number of days required to achieve specific project milestones. You will keep this expert timeline a secret and use it to compare developer bids in the future. When developer timelines and expert timelines don’t match, you will avoid that developer. Pay well for this if you hire a consultant, it is very important.

Post

3. Post the job description at (all of) the relevant freelance sites you can find (some are listed below). Post the description only, not your expert timeline. Also avoid specific budget outlines when possible. Make it known that short and poorly formulated responses will be discarded immediately. Require responding developers build a timeline outlining the steps to reach completion. You want potential developers to do some work here.

Read

4. Wait a bit and then read your responses. Discard any short or poorly formulated responses (you warned them, remember?). Discard any responses with a timeline that deviates greatly from your expert timeline with one important exception: developers who achieve greatly shortened timelines by utilizing existing open source solutions are valid. For example, no developer should propose to build a full e-commerce suite from scratch. Instead they should propose adapting an existing open source e-commerce platform to suit your needs. Choose a few developers who make you slightly more comfortable than the rest.

Research

5. Analyze your potential developers. Get a resume (an actual resume) from each developer. You’re hiring someone to work for you, be sure you like what you read. Get a list of projects they have completed with contact information for each prior employer. Contact said employers. Find out if the employers are still satisfied with the work performed, if the project was on time, and if it was on budget. Ask for sample code. Pass it to your expert friend to analyze it. Search (via Google) for some lines of the code to verify it is indeed their code and not stolen. Based on these credentials, narrow your field down to 3 or so developers.

Communicate

6. Talk to your potential developers verbally via Skype. Skype is free and there is no excuse not to use it. If you can’t verbally communicate with one potential developer, move on to the next one. When you are verbally communicating, ask them about their prior projects (from Step 5). Ask some general interview questions such as, “What were the easiest and most difficult aspects of that project?”, and “What unexpected issues arose and how did you deal with them?”. Get a personal email and IM name for each potential developer as well. You want to be able to reach them easily.

Negotiate

7. First negotiate development time. Show potential developers your expert timeline from Step 2. Ask that they explain any deviations between their timeline and yours. Make sure explanations are satisfactory. Again, consult your expert as needed. Next negotiate on payment schedule. I recommend a schedule as follows: 20% payment to get started, another 20% payment at the halfway point, another 20% payment upon “completion”, another 20% payment one week after completion and necessary bug fixes, and the final 20% 2-3 months after completion and all other bug fixes. Contracts may be difficult to enforce as your developer will likely be in another country, thus withholding payment is your best remedy for any troubles that arise. I don’t recommend you negotiate on price. If you like a developer and their bid is within your budget, that’s the most you can hope for.

Finalize

8. Choose your developer. Make sure they will work exclusively on your project until completion. Hopefully at this point you know where and how you’re going to host or distribute your application, but if not, get some advice from your developer. Then cross your fingers.

Freelance Sites

Guru.com
Guru.com is the largest freelance exchange on the web. When you log on, you’ll be struck by the clean and simple yet instinctive user interface.

Elance.com
Elance.com is known for its outsourcing solutions for medium to large enterprises. No freelance site beats Elance in the marketing arena.

RentACoder.com
This Texas-based firm, more commonly referred to as RAC, has a service-provider base of 125,000 and counting.

GetAFreelancer.com
This is Europe’s answer to the U.S. based freelance sites. The firm is based in Sweden and has a subscriber base of 85,000 freelancers.