Whether outsourcing IT or software development is a good idea depends on what business you are in.
If you are in, say, the Baked Goods business, or the Tire Manufacturing business, then outsourcing either or both functions is probably a good idea.
If you are in the Software Development business, then outsourcing software development is probably not such a good idea. It would be like a bakery outsourcing the baking to another bakery. If they do that, then why do I need them? Why shouldn't I just go to the other bakery?
- - -
All that is necessary for Apple to triumph is for Google men to do nothing.