Agreed. 20 years, and I've never seen a return on an outsourced project. The overseas company whittles the specs down so far, your own guys could do it in a weekend. The cost of managing is larger than the value received: barriers include language, timezone, network access, culture, currency, import/export rules. The culture one is huge. Many cultures, a worker won't contradict a boss for any reason. So you're trying to get an expert opinion out of them about how to proceed, they're just saying "Uh huh, yes boss".
Or they will require such detailed functional specs that by the end you're almost literally just paying for ten fingers to do the typing. An example that I wish weren't true: one specification had detail to the level of specifying that a particular form required a button to submit the form. The returned product had a button titled "Submit the Form." It did nothing, because the specification did not explicitly say to submit the form when the button was clicked.
A web app I inherited, for which I do not have the original spec, and initially developed by an outsourced offshore team, had one route that was literally "/obscure/reset_password?user_id=x". A light dawned when I realized they must have been asked to provide an unguessable or "obscure" endpoint for account actions.
You should try other outsourcing destinations. Large timezone differences are indeed a hurdle, and culture differences is always underestimated. Add to that the general ineptitude of managing projects in large companies, and you have a recipe for disaster.
In Western Europe, the most compatible culture and therefore easiest place to start, is Eastern Europe and Russia. If you are in the US, I'd personally just outsource to US companies in the midwest. Some of my western European clients are actually doing this now, as for example NC hourly rates are lower than Moscow rates.
Managing projects where you have big cultural differences require many years of experience in that particular area. Even then, it requires a much higher project management effort.
If management of a project with a local team take on average 10% of total project time, a project with developers in a markedly different work culture will easily take 20-30% of time spend.
We had a wonderful Ukrainian engineer working for us. It was a very productive relationship. He worked 1 on 1 with a project leader here, and they got more done than the Russian team ever did. But that ended; one day in the standup he said "I have to go; we're having a revolution outside my window".
I remember having to work with a Croatian outsourcing company once, it was pretty much the same as the worst-case people talk about for India. You had to nail down the specs exactly, most of what you nailed down wouldn't get implemented anyway (despite being paid for it) and a lot of what we thought was nailed down was implemented incorrectly due to poor understanding of English. Conversely I've heard a lot of good things about the better Indian and Chinese outsourcing companies. It feels like one of the biggest problems with outsourcing is that when a company decides to outsource, they're already price-sensitive, so many of them go for the lowest bidder instead of paying the extra for a good outsourced team -- which would still usually come out cheaper than a good local team.
Fully agree. Nationality alone isn't a sure fire indicator of quality. I find that on average there is a higher success rate with eastern europe / russia vendors, especially when the onshore personnel are inexperienced with outsourcing. But of course there is hits and misses no matter what country you choose. Finding a good vendor in any location is a discipline in itself.
And yes, if a company decides to outsource with low price being the overshadowing priority, they are likely to end up with the amazingly low price and amazingly low quality vendors.
Also agreed. Shopping on the basis of nationality misses the point. The problem with India is that small cheap outsourcing shops have zero chance of attracting top talent. In smaller markets, where big prestigious technology companies don't have offices, you are more likely to luck-in to exceptionally good overseas engineers at a good price.
But you sure can't count on this happening, and, by the very nature of this effect, it doesn't scale, and it isn't repeatable.
Funny. In my experience telling something as it is is a very easy way to piss of the client, who in general have huge ego that they are from a superior culture.
One of the primary benefits of an external contractor is that they are mostly unaffected by whatever politics are occurring within the company. This means that they're more likely to give direct, honest feedback, and they won't worry very much about whose feelings it hurts. This is supremely valuable in most organizations, and impossible for most employees to provide if they want to stick around for more than a few months.
There are unreasonable people everywhere, of course, so it's not that weird to find a client who doesn't understand the value of this service.
Even if that is true (which it may well be), it's yet another landmine for companies who seek solutions via outsourcing.
I'd agree with OP on this. I've never seen a distributed, outsourced approach work. The product has always been poor or even worthless.
Having said that, I have seen distributed, in-house projects work, sometimes very well, even when the teams were internationally distributed, and even with moderate language barriers.
And now the bigger software companies are opening "research centers" in the offshore countries and just plain moving the jobs there. Specifically China, which was the big deal when the president of China recently met with Facebook, Twitter, Google, and Apple at Microsoft's main campus.