You have seen the ads and heard the stories about hiring programmers for dirt cheap wages, “Hire Programmers for Only $2 Per Hour!” These stories are often accompanied by an indignant attitude about profits, “Can you believe the large outsourcing companies bill them out ten time what they are paid! ”
The stories are usually about paying low rates to individual freelancers met on websites like Elance and RentACoder. But there are always details not mentioned. “I went through two other programmers before I found one who could deliver.” Or, “Actually, I had to fly to Bulgaria to make it work.”
Eventually you can find a freelancer willing to work for rock bottom dollars. But you also have to consider the value of your own time to find the cheapest AND reliable freelancer to deliver the software you need.
And what about larger projects that require more than one programmer?
You hear other offshore stories about huge companies creating subsidiaries in India or China. Indeed, companies like IBM and Cisco are investing billions of dollars to set up their own operations in these and other countries around the world. They are true multinational corporations.
But for most of us, who don’t have a spare billion dollars lying around, creating your own offshore subsidiary is overkill.
Actually, the cost of creating your own subsidiary is closer to $100,000 and some small companies actually take this path. They effectively become a micro-multinational company. But it is generally agreed that creating your own subsidiary only makes financial sense if you employ more than 50 engineers.
For the rest of us, there is contract offshore outsourcing, where you use the services of software engineers located in a foreign country, and pay them by the hour, month or by project milestone to develop your software.
Who should you hire?
Should it be an offshore “body shop” that delivers you engineers as raw talent you manage yourself? Or should you hire individual programming experts— freelancers— that have struck out on their own to focus on their programming craft?
For all but the very smallest projects, collections of programmers or freelancers are difficult to lead at a distance. Happily you also have the option of hiring an offshore vendor to deliver a well-organized programming team, expert in your software technology. They will use sound programming principles and process to create large and complex applications.
How should you pay them?
If you have a good specification then a fixed-price project makes sense.You get the software you need for a predictable price. But if you are not sure exactly what you need— a common situation when developing new software— then a fixed-price project is not practical.
Paying by the hour or man-month works well if you are collaborating with your offshore freelancers or programmers and have the time and experience to manage their progress. For small teams you may be able to manage them remotely. For medium and large-size teams, having some structure, planning and process is required for good results.
Working on a time and effort basis requires good management to make sure you don’t waste time and money.
This table summarizes your choices and the relationship between the types of resources available and how you pay them:
Choose your quadrant carefully. Don’t get dollar signs in your eyes and jump to the cheapest quadrant unless it will give you the results that you need.