It doesn't work because this is what happens.

You're working for your mid-sized company, a couple hundred employees, and they had just a great 2010. The parent company is willing to invest in further growth, and at the top-level growth means headcount, headcount, headcount.

So they hire a couple dozen people with titles like "product manager" and "business analyst" and the tech project pipeline, already stuffed to begin with, becomes completely ridiculous. HR's hitting the phones/Craigslist/Linkedin to fill those developer positions, but they're just not having much luck. Of course they're not going to have luck. Google's in a "War for Talent," and if they're having trouble finding people, what does your rinky-dink shop really have to offer? For years you've suggested the guerilla-warfare approach to recruiting -- open source some of your most useful code, go to local college campuses and start some sort of internship/startup program -- but it's fallen on deaf ears so you've given up on pushing those ideas for awhile.

Eventually some executive or another gets the idea to try and offshore some of the work. You're not worried that they're going to take your jobs; in fact, you know it's going to catastrophically fail. Being at a smallish company allows certain economies of scale to work. For example: you don't have much in the way of things like "requirement documents," because you regularly engage with the business. You don't have "coding standards," but you can have discussions with the engineering team about things to standardize whenever you want. And you know there's no prayer of things like this scaling to an offshore resource, so you're mostly just wondering how to avoid getting blamed when it fails.

Your company talks with some firm in India and suddenly you need to get up at 7AM to phone screen some candidates. While all their resumes had a delightful HR keyword soup of languages they knew like "C/C++ Java Ruby Rails Scala AJAX," apparently "English" isn't one of them. Eventually you get tired of waking up at 7AM though, and you find one that speaks passable English and seems to know what he's talking about, so you say bring this guy on.

The problems mount almost immediately. The offshore contractor is on site for 4 weeks and you have him work on a practically trivial project, and while it technically works, the code quality is so poor that you have no idea how the fuck it even compiled. So now he's two weeks into his 4 weeks on site, and you're torn between rejecting his code and him spending another two weeks learning where the fuck his 'tab' character on his keyboard is, or doing something actually useful. You're under pressure to get some utilization out of this guy, so you put his terrible code into production, convincing yourself that's it's isolated enough to likely not need any maintenance anyway.

The guy goes back to India and now he gets his first project he works on remotely. You get your usual four sentence e-mail for your "requirement document," so you have to spend a bunch of extra time fleshing it out so this guy can actually write some relevant code. You hear nothing for 3 days, no questions at all, so you're a little concerned. And then suddenly you get an e-mail saying he's done, except you look at his code, and you WISH syntax formatting was the only problem with it. It seems he completely misunderstood everything, and even what he did write doesn't even work, and so you exchange an agonizing set of e-mails with him. The conversation you'd have with any engineer about misunderstood requirements that would take 15 minutes now takes two weeks because every question and answer is on a 12-hour time delay.

Finally, after 3-6 months of this, if you were smart you documented all the difficulties you had, your efforts to make it work, and you have a long discussion with your manager. Your boss appreciates the feedback, tells you that working with him isn't your responsibility anymore, and you can finally go back to working on your own projects instead of babysitting this guy.

And you're having lunch with some engineers in another team next week, and one of them says, "yeah, they're looking into bringing on some offshore help for us," and all you can do is sigh pityingly.