There have been some good comments here and as someone who has been involved with a lot of outsourcing there are typically only 3 reasons why an outsource would fail:
- Poor procurement
- Poor bidding
- Poor management
Get these right and it should work. However, many times the subtleties of each are not correctly considered and you find
- A bid submitted on a win at all costs basis so the Business Development Director hits a target and gets their bonus
- A procurement team too week to reject a price that is too low to be sustainable
- A contract management team set up to deliver and not manage delivery (they are very different things)
With regards to in-house delivery there is no reason why this can't work well but it must be able to demonstrate value and quality i.e. Against measurable targets just as a good external service provider would have to do and there be consequences for failure i.e. Staff who don't deliver are sacked if unfortunately necessary. If this can be done why would you outsource apart from those tasks so specialist that no one would do them themselves.
Outsourcing is a complex area oversimplified by many including some involved in it.