I’ve interviewed for a few jobs where they had an offshore programming team. As part of the job, I would be working with the offshore team.
I’ve also interviewed for a few jobs where they said “We hired an outsourcing/offshore team to develop our product. We’re not satisfied with the results, and now we’re hiring people directly.”
If the boss is not computer literate, failure is guaranteed, whether you use an offshore team or hire locally. If you don’t manage your staff well, you might as well minimize the cost per hour by using an offshore team! If the boss is computer literate, it would be easier to identify, hire, and manage good people locally, rather than manage the offshore team.
With an offshore team, there’s a lot of potential problems. The offshore team will not have English as a first language, leading to communication problems. Due to the distance, everything must have a detailed specification, but writing a 100% detailed specification can be as much work as writing it yourself. There’s a time zone difference.
For a large corporation like Microsoft or IBM, an offshore team can be profitable. They can afford to build a large team of offshore workers. Large corporations have a lot of overhead and bureaucracy anyway. For a small business or a startup, the overhead of offshoring will usually outweigh the benefits.
Whenever I hear a startup say “We hired an outsourcing/offshore team to develop version 1.0 of our product!”, I mentally translate to “This startup is doomed!” A startup needs a technical cofounder who can develop version 1.0 of the product by himself. Many of these startups are trying to add a technical cofounder later, when they find out that VCs insist on a technical cofounder. I’m always amused by job ads that say a startup is looking for a technical cofounder, but they’ve already decided what language they’re going to use!
Offshoring works well for simple tasks like data entry or assembly line manufacturing. I don’t see the benefit for writing software or something creative.
In a really free market, there should be no long-term economic advantage to offshoring. There’s a simple arbitrage argument. If offshoring really is profitable, more people will do it. Salaries will rise in the offshore market and decrease locally. Over time, any advantage will disappear.
Whenever someone mentions an offshore development team in an interview, that’s a red flag. One tell is that they get offended, when I ask if the offshore team is really worth it. Whether you hire locally or offshore, you still have to manage your workers intelligently. Offshoring is attractive, because it minimizes the cost per hour. If you aren’t going to manage people well, you mgiht as well minimize the cost! It’s easier to manage people locally, especially when they have to meet with users to understand requirements.