Canadian companies often feel besieged in a globalized economy where it seems as if we can’t compete against the onslaught of low-cost labour from abroad. I often hear Canadian business people comment that they can pay offshore developers in China, India, Vietnam, or the Eastern Block a fraction of what they have to pay their own employees. (“It costs me $50/hr for an employee here, but I can send the work to India for $20/hr. I can get 2.5X the work done for the same cost if I send the work overseas.”). Well that thinking is just plain wrong.
Before undertaking an offshoring strategy, keep in mind that there are significant qualitative factors to be considered – any one of which might nullilfy the advantage you expect after a simplistic labour-rate comparison.
- Travel: Talk to a few managers who have outsourced development work. They’ll tell you about their frequent trips to places like Bangalore or Shanghai. Not only are costs for such trips real and substantial (definitely include them into your cost/benefit analysis), but travel is tiring – and it takes you away from managing the business here. Your marriage and/or your business could suffer.
- Management costs: Besides the travel issue just mentioned, you still have to manage the development process. That becomes more difficult and costly when you send work overseas. Even though you might travel to your outsourced operation periodically, you’ll need managers there to keep an eye on things from day-to-day. Even the managers will need to be managed, and they will be paid more than the base rate that you might have used in your original back-of-the-envelope calculations.
- Unexpected costs and situations: Regardless of the type of outsourcing arrangement you have, you may find that you need to supply equipment and software: VOIP phones; Software licenses for specialized software you use; VPN software; etc.. Administering this in your own office can be a headache. Believe me, administering it overseas is more of a headache. (And think about what happens when you visit the overseas office and discover something surprising, like developers using pirated copies of a popular software package.)
- Turnover: The booming economies that you outsource to also provide lots of opportunities for job-hopping. Don’t be surprised if team-member retention is difficult in your outsource destination. One solution is to offer better compensation … but you outsourced to avoid that game, right?
- Intellectual property: This should be a big concern. There are often protections, e.g. working with large, reputable outsourcing firms, but the protections are not ironclad. You’ll need to become familiar with your company’s legal rights in the outsource destination, and will have to be willing to incur the costs to exercise them if you discover a problem. Unfortunately, you might have little recourse if you suspect that a competitor has hired one of your outsource team members and is exploiting their knowledge of your operations and products. (Trade secrets are hard enough to protect on our own turf!) How about theft of designs, prototypes , source code or customer lists? Consider how to protect these.
- Inability to directly oversee work: Maybe I’m old-school, but I like to see my employees doing their job. I like to know when they arrive and when they go home. I like to talk to them about their work while they’re doing it. I like to ask questions, or be asked questions. I like to listen, mentor, discuss, help, critique, observe, and, well, be part of the team that I lead. Like gravity, one’s ability to oversee work decreases as a square of the distance from the workers. And once there is a time zone difference, it becomes almost impossible. Skype and Webex can never make up for sitting down with someone and having a face-to-face discussion.
- Time Zones: You’ll be out-of-phase with your offshore development team. Plan to come in (very) early or stay (very) late in order to have real-time discussions with your team. Alternatively, do it from home after the kids (and your spouse) go to bed. You’ll need to do this, and your local employees who interact with the offshore team will need to do this. It wears thin very quickly, and there is a strong incentive to minimize the length of such phone, skype and webex meetings. You may end up having to pay your employees a premium to do this – higher salaries, bonuses or overtime. Alternatively, the offshore team can work late or come in early in order to talk to the local office during your business hours. They have lives too, so this isn’t necessarily a good solution to the problem.
- Holidays and weekends: This is similar to the time zone problem. Don’t forget that your Chinese or Indian team will be a day ahead of you. It might make it difficult to reach them on Fridays in North America – unless you require them to work Saturdays. Alternatively, you can get your team to talk to them on Sunday – which, like time zone problems, wears thin very quickly. And if they hit a roadblock at the beginning of their week, your outsourced team may not be able to get a hold of you to report or resolve the problem. Then there are holidays. Your holidays and the other country’s holidays. These rarely coincide, and often result in “surprise” on-the-job downtime on one side or the other.
- Language: When you can’t meet face-to-face, written and oral communications becomes increasingly important. It is guaranteed that language differences and difficulties will be an impediment to successful development. There will be very real misunderstandings and misinterpretations due to language difficulties. And toss in to the mix the fact that engineers sometimes prevaricate when they have dug themselves too deep a hole: Nuances in language are a great way to bend or obfuscate the truth (consider BP’s recent obfuscations with their daily reports – and we supposedly share the same language!!).
- Cultural differences: There are many cultural differences which need to be taken into consideration, but my pet peeve is this: I want engineers who will tell me the truth, not just what I want to hear. More often than not, you’ll have an outsource team that is eager to please. Add to that societal differences where there is a strong respect for authority and a culture of bureaucracy – and you find that you’re working in an echo chamber. You’ll never get any push back and you’ll only hear your own voice.
- Morale: At best, your local employees will merely be suspicious of your intentions for offshoring. At worst, they’ll jump ship or sabotage the endeavor. If you do it right, they’ll accept it like any other change. It’s not easy to do it right, however, and you are likely to run into problems due to time zone issues, compensation gripes, worries over job security, etc.. The concerns and complaints will be real, and they could adversely impact product quality and productivity of your local employees.
- Short-sightedness: Why are you offshoring? Is it a long term strategy that will ensure the future prosperity of your company, its products and its employees? Or are you doing it to maximize short-run profit. The paradox is that offshoring will only work if you do it as a long term strategy because the start-up costs of offshoring are generally large, and the payback long-term. And if you are in it for the long-haul, consider dealing with all of the above-mentioned issues for the long-haul as well: E.g. travel, time-zones, IP, language, culture, etc.. (I’m talking about offshoring development projects, not making dinner reservations a la “My Outsourced Life”.)
- Ethics / exploitation: I want my employees to be productive and to have a good life. That extends to my offshore team. My moral duty and duty of care does not stop at my country’s borders. Full treatment of this issue will have to wait for another blog entry.
Believe it or not, I am not philosophically opposed to offshoring. We have a global economy and there are bound to be legitimate labour-rate differences in different countries – It is OK to take advantage of those differences. Just look before you leap!
In my next blog I’ll talk about how Canadian companies can compete even if just labour rates are taken into consideration. If you play your cards right, a $100,000 per year developer can be employed for close to $2,000-$42,000 per year ($1 to $20 per hour).