Hi,<p>IT jobs are easier to outsource than many other jobs who require physical presence. Yet, we are still earning a fairly decent salary and the outsourcing seems to have stopped at the lower end of the IT value chain. Why have we not been outsourced yet and will this change in the future?
Communication. People think that software is a coding problem, but for anything non-trivial, communication is a far bigger bottleneck. The amount of code on a project is O(n) with number of developers, but the amount of communication required is O(n^2). Anything that makes coding cheaper at the expense of making communication less efficient becomes a net loss at scale.<p>This is why engineers who can communicate effectively make several times more money than engineers who can't.
Outsourcing has its fair share if disadvantages. It happens a lot, mind you; not remotely every company has its own IT department, builds its own website, etc. But if it's part of your core business, you probably want some direct control over it and not be at the mercy of other companies. And that means hiring the right expertise.<p>Whether to outsource or not is an important strategic decision that depends on how important the task is to your core business, what kind of expertise you've got in house, and how well you can guarantee the quality of that expertise. But in the right circumstances, having this in your own company gives you more control at a lower cost than if you outsource it.<p>Then there's offshoring, of course, which is outsourcing to a cheaper country. This was popular 10 years ago because from a management perspective, because of the lower cost per hour, it seemed to be cheaper. But if it takes more time, you lose that advantage. Most companies have finally come to understand that offshoring means you import a big communication overhead, and you hand over quite a lot of control over the quality of the project to a party that is not always capable of delivering the quality you need. Fixing the mistakes takes a lot of time and money.
Here's just a few factors:<p>– Security: possible to do background checks on citizens of your own country, easier to hold them responsible, less chance of rogue employee, etc.<p>– Communication problems: both in terms of poor communication skills being more apparent in limited telecommuting communication channels, and cultural differences (different norms of subordination, etc.). Language barriers and time zone differences also go here.<p>– "Outsourcing" is a misnomer for what you describe, and has a poor reputation for a reason. Turns out hiring cheap incompetent sweatshop workers using an intermediary/broker is apparently not a good idea if you want a decent result. And quality workers are not as cheap as you'd expect in their home countries because they are a rare breed globally.<p>– Telecommuting on the other hand, by which I mean hiring individual contractors to work remotely, can work out pretty well if you do quality control in-house. It will surely become more popular.