The biggest problem I've seen with outsourcing is cultural.
If I tell a worker in the US to build an App that does X, they'll build an app that does X. If I tell an outsourced worker (be it in India, China, or Russia) to build an App that does X, they'll need me to fill them in on what language to use, specific algorithm's I'd like to see, interface requirements, all kinds of questions on HOW to build it...
I'm not saying we work better, but US workers are FAR more independent (typically)*.
Keep Up with TechRepublic