There are business costs associated with international outsourcing that are often overlooked. Decision makers like to compare pay rates, because those benefits are easy to see. The costs, however, are subtle and harder to quantify. That doesn't make them less real. If you want to do the right thing for your company, you should dig a little deeper. Here are some of the barriers to international outsourcing that a responsible decision maker should confront:
It's not enough to be good with technology. You have to be able to participate effectively in teams as well. Technical ideas are difficult enough to formulate and express without additional language problems. Technology professionals are not exactly chatty to begin with. Poor language skills further hamper teamwork and impact schedules.
When they're working, you're sleeping. When you're working, they're sleeping. Scheduling meetings means some people work late and others work early. In any case, you only have a tiny overlapping window during which to communicate. If your CEO wants to hold an all hands lunch meeting, remote workers are excluded. In fact, they'll be excluded from most meetings. Effective teams communicate all day long. Without constant accessibility, work slows drastically. Problems that should be solved in minutes take days. Many don't get solved at all.
A remote team must have strong, competent, organized, and responsible leadership. The leader must show initiative and own all the issues associated with the success of his team. International micromanagement cannot work. Everyone who tries fails. There must be a single point of contact leading the remote team, a single throat to choke. That person must over-communicate. They must document everything they're doing because local management has to rely heavily on written documentation due to narrowness of the communication pipeline. That documentation is a additional continuous drag on productivity.
When you have a holiday, they have a work day. When they have a holiday, you have a work day. They work on your Sunday. You work on their Saturday. You only get four days of overlap instead of five. This means the already serious communications lag is extended often by as much as an entire weekend. Things you could have accomplished on Friday don't get done until Tuesday. Again, communication, teamwork, and productivity all take a hit.
Not all work can be delegated to the remote team. This means there is a division of labor that may be unnatural and contrived. You can only give highly modular, documentable, and measurable tasks to the remote team because micromanagement isn't an option. The local team will end up doing whatever is left over, even when they're not the right people for the job. A more senior local team may end up doing junior work that should have been delegated. All work tasks must be documented in great detail. Much money is wasted if you get this wrong.
This is expensive. There are many technical lab problems to address that you wouldn't otherwise have. International VPN connections will be slow. This means you have to limit the amount of data transferred between sites and possible limit the window during which such transfers can take place. Your source code repository will be located locally. You will need the means to replicate the source code across sites if you plan remote development. You may need to copy compiled binaries across sites as well. You will need to copy cores and logs across sites for troubleshooting. You will need to have a means to image operating systems and distribute the appropriate software tools for the remote team. If you want the remote team to have their own lab, you will do everything twice. If you need to deploy an Active Directory server in your lab to support a new feature, you will deploy two instead of one. You can multiply the number of service outages by two as well.
Any time there are technical difficulties that require remote assistance, and there will be, the issues will be resolved at a snail's pace. Usually problems that would ordinarily take only minutes to resolve will take days.
Technical instructions have to be documented in painstaking detail and made accessible on the intranet. In-person training has to be video taped. The video files must be transferred across the WAN. Question and answer may not happen at all and will be done via email at best. The remote team will have to wait to learn about new product features until the local team is up to speed and can document them and their testing requirements. This is another unnatural division of labor. Work items you'd like to delegate, may have to be done locally until you understand them well enough to delegate and explain them.
You'll need have a remote meeting infrastructure like Webex or NetMeeting. You'll need a plan for handling frequent international phone calls. Regardless, the technologies often don't work well for remote teams due to inadequate telephony infrastructure. Get used to asking people to repeat what they said. "What? Huh? Can you sit any further from the microphone?" A picture is worth a thousand words, but you can't whiteboard effectively with distributed teams. Remote management robs you of much of the benefits of visual communication.
It probably makes sense periodically to bring the remote team to the local office for face time and personal interaction given the communications barriers. The travel cost is obvious. But this is lost time in terms of the remote team's productivity. The local team will have to entertain the visitors and carve out time for redundant meetings, so you pay twice.
Most of the communication and teamwork costs have a local counterpart. That is, it's not just that the remote team is seriously less productive than the would be if they were local, but the local team's productivity suffers as they're distracted by all the preceding problems and get blocked on slow communications. You can't just grab the person in the next cube and ask them to reboot the Interocitor. You have to email a precise, detailed, and time bound set of instructions, then wait a day until they say, "Okay". If they didn't understand the instructions, you wait another 2 days to clarify their understanding.
International outsourcing has the same effect as arbitrage (http://en.wikipedia.org/wiki/Arbitrage#Price_convergence). That is, you increase the quantity of labor demanded in one market and decrease it in another. Prices (labor costs) increase in the remote location and decrease locally. This has the effect of equalizing the prices across markets. Once the price gap closes, you're left with all the foregoing costs without the benefits you thought you'd have.
All barriers can be overcome, but reality isn't optional. International outsourcing will cost you. Anyone who tells you differently is selling something. Make the decision in full awareness of these barriers.