I'm a senior programmer. I've worked in both large and small shops.
Most companies don't outsource because of scarce labor. They outsource to keep the expenses off the balance sheet. In many cases, the outsourced IT cost is more expensive than the in-house IT cost. Especially if you take into account the non-accounting costs as mentioned in the original article.
As for the perceived tech labor shortage, the department of labor statistics attributes this to the expectation delta. In short, companies want to pay less and job applicants want to earn more, even though the prevailing wage if somewhere in between. So it is true, there is not enough highly skilled domestic tech workers who are willing and able to work for the price companies are willing and able to pay. But that does not mean that there are not enough highly skilled domestic tech workers.
Some other considerations are:
Moral and productivity may suffer when you outsource.
You may not get a dedicated resource who knows your business.
Your outsourced group may serve their own interest instead of your.
Basically, outsourcing IT is about as smart as outsourcing operational or financial functions. Many companies do and it is not smart.
Keep Up with TechRepublic