Virtually every business is built on software, whether it’s a website, a mobile app or desktop programs. Companies that are good at outsourcing can launch products and services much faster and cheaper than competitors, and maintain a long competitive edge. Unfortunately, most companies are awful at it. A horrifying two thirds of outsourced projects are late, over budget, incomplete or malfunctioning, and often all four at once. This unnecessarily costs businesses billions each year.
I know a little bit about outsourcing because I was the founder and former CEO of RentACoder.com (later renamed vWorker.com), an outsourcing marketplace with 400,000 users, and $131 million in projects. I saw numerous companies making the same mistakes over and over again, and I also saw superior companies enjoying superior results. By giving some of the poorest performing clients some simple best practices to follow, I was able to boost their success rate to 89% and higher. I’m going to share with you three of the most effective hiring techniques, so you, too, can get your software on-time, on-budget, and on-spec.
Before looking for bids, it’s essential to take a step back and choose the best geographical location for your programmer. Unfortunately, I’ve seen too many people choose poorly and experience catastrophic results. You can choose from onshore (United States: $25-$250 an hour), nearshore (Ireland, Philippines, etc.:$15-$75 an hour), and offshore (India, Romania, Pakistan etc.: $5-$25 an hour). The more offshore you go, the lower your costs, which is obviously very attractive. However, many offshore legal systems do not enforce copyright, so going offshore can result in your idea being stolen, and having no recourse. For this reason, many companies will split a project into multiple parts, so no single offshore programmer has access to all of it. Another good technique is to pair offshore programmers with an onshore integrator or team, who can ensure that the secret portions of the project are kept onshore and secret.
Also, the further offshore you go, the more language and cultural differences can cause issues and slow things down or even cause a project to fail. Many offshore programmers only speak English as a second language and some can only write English, and not speak it. As a result, if your requirements require any extra explanation or verbal discussion, then it’s usually not a good idea to hire offshore. Offshore programmers are best for straightforward, heads down work.
Additionally, it’s important to understand the cultural differences between you and your offshore programmer. For example, an Indian programmer will often always tell you that the project is going well/great, if you just ask at a superficial level (out of politeness). A smart manager always probes and asks for specifics. Another example, is that many Indian programmers will say “yes” to mean “I heard you”, when a US manager thinks they mean “I agree with you”. If you need to verify agreement, make sure you ask explicitly. I highly recommend reading the “Culture Shock” series of books for whichever country you are outsourcing to.
Once you’ve selected the ideal location for your programmer, the next step is to figure out your payment model. Again, I’ve seen too many people choose incorrectly, and expose themselves to scams and unnecessary losses of time and money. So I know you will find it worth the time to get it right. You have two choices: paying a fixed price (example: $250 for a website) or an hourly rate (example: $10 per hour). Fixed-price projects offer you the maximum protection, because you know exactly how much it will cost in advance. For technical reasons, even the best programmers tend to underestimate how much a project will take to complete by 2 to 5 times. By getting a fixed price quote, the inevitable cost overruns become the programmer’s problems and not yours. (If you pay hourly instead, you will end up paying a lot more.) The downside is that it takes additional time and effort for the programmer to make the estimate, which is often an unnecessary cost once you’ve worked with them several times and trust them. For this reason, I highly recommend choosing a fixed-price project when working with any new programmer.
It’s important to never pay an upfront deposit on a fixed-price project. Unfortunately, I’ve seen more clients than I can count who were scammed by a programmer who took an upfront deposit and disappeared. On the other hand, many good programmers have also been scammed by clients who wouldn’t do an upfront deposit, and refuse to pay at the end. So it’s important to use a third-party escrow service (like one of the online outsourcing marketplaces) to protect yourself, and to put the programmer enough at ease so they can do their best work for you.
One hitch with fixed priced projects, is that the model doesn’t work well once a project gets larger (more than $250 offshore or more than $2500 onshore). The reason is that since most programmers substantially underestimate the work required, they tend to abandon larger projects, rather than finishing them. So, only use fixed-price on smaller projects. If you have a larger sized project but need the protection because the programmer is new, split the project into two parts: a smaller fixed-priced front end, and a larger hourly rate backend.
Once you’ve worked with the programmer and are happy with their performance, then you can switch safely to paying them an hourly rate. Again, there are things to watch out for. I’ve seen far too many clients scammed by programmers who pretended that they were working all sorts of hours, but were actually on Facebook, playing games, and one time, even sleeping! It’s important to use a tool that monitors the programmer’s desktop, and ensures that they are really working. All of the major online outsourcing sites provide a way for you to watch what the programmer did during their time. These tools usually have a small cost, and I have seen a few people drop the tool after working with the programmer for several months. So you might prefer to do this. I personally always continue to use the monitoring tool, because to me the small cost is worth the peace of mind.
Choosing a Programmer
Studies have shown that the best programmers are 10 times more productive than the worst. So a great hire will become an asset for your company for many years. A poor hire will result in wasted money, time, unnecessary frustration, and possibly a failed project. So how do you choose well?
First, on most marketplaces you will be flooded with bids of questionable quality. Immediately weed out the 90% that didn’t take the time to respond back with details about your project or specific questions (they are just spamming projects hoping for a response). A further trick I use is to post at the bottom of my project description, “you must respond back with the word XYZ in your bid, or I will not consider it.”
This weeds out people who won’t give my project the appropriate amount of attention. Next, look at the programmer’s experience. It’s important to make sure they’ve done a similar project successfully, and also of a similar size. Programming projects get exponentially more difficult as they get bigger, so the programmer that’s done several successful $100 projects is not a sure thing for your $200 project. Also, if your deadline is crucial, require them to place a deposit to guarantee completion (which they forfeit if they don’t). Finally, make sure that they agree to give you full copyright to the final source code. Too many people forget this, and end up being held hostage by the programmer at the end of the project for a ransom payment.
Ian Ippolito — Founder and Former CEO of RentACoder.com and vWorker.com
These are some of the issues to consider when hiring a programmer, and obviously there are many more. For more detailed advice on this and other issues, please visit my URL on Clarity: https://clarity.fm/ianippolito