David Anderson quotes an answer by his boss on outsourcing at an all hands meeting. 

We will outsource when there is no knowledge associated with an activity, such as repetitive execution of test plans. We will not outsource where there is knowledge to be gained and retained such as writing test scripts or programming automated tests. We will also outsource when we have resource issues. We will look at each case in turn. When it makes commercial sense we will outsource to elevate a bottleneck.