I don't think you have to take it as a all-or-none deal.
Often, I'll outsource small sub-projects that I know would take me more time than I can budget for that aspect or because I don't want to sidetrack myself from the marketing aspect of my business.
For instance, I needed to extract data out of a Firefox plugin that used SQLite. I really didn't feel like unraveling the schema and putting together the core SQL statements to extract that data the way I needed, so I had an outsourced developer hack it together for me for $50.
It probably took him about 5 hours to put together, so if I value my time over $10/hr, it was money well spent. (Especially when working on marketing parts of my business, my time is worth wayyy-y more than $10/hr.)
But the downside is that you now have this mysterious black-box in your code that you can't really do anything with.
If, 6 months later, you decide that you want to add a feature or fix a bug you're only going to have two options:
1. Be at the mercy of the outsourced programmer
2. Spend 5 hours learning the schema, and understanding the existing code. Then, after realizing that the code you bought is crap (not necessarily true, but more likely than not), spending another 5 hours rewriting.
#1 isn't any different from hiring an employee who leaves. #2 isn't any different from hiring an incompetent employee who leaves.
I'm working from Beijing with some seriously cool Rails hackers. They read all the English blogs, articles, books and produce good code. When you hire an "offshore" team, approach it as you would an employee. The teams that compete solely on price, well, you get what you pay for.
It doesn't always have to go that way if you plan to have things reviewed. I know one founder of a ppc optimization service who outsourced his MySQL schema development to some folks in the former USSR a few years ago and then asked me to take a look at it when they were done. The schema was reasonable for what he needed and it looked pretty easy to map directly to the PHP framework he was using.
Often, I'll outsource small sub-projects that I know would take me more time than I can budget for that aspect or because I don't want to sidetrack myself from the marketing aspect of my business.
For instance, I needed to extract data out of a Firefox plugin that used SQLite. I really didn't feel like unraveling the schema and putting together the core SQL statements to extract that data the way I needed, so I had an outsourced developer hack it together for me for $50.
It probably took him about 5 hours to put together, so if I value my time over $10/hr, it was money well spent. (Especially when working on marketing parts of my business, my time is worth wayyy-y more than $10/hr.)