Outsourcing strategic value streams, process or resources is a bad idea. You lose flexibility and responsiveness. As soon as you move from a collegial all-in-this-together relationship to a contractual you-serve-me relationship, you promote a blame culture. That’s the fatal flaw of the whole idea.
Why outsourcing important stuff sucks:
1) Suppliers have always been scapegoats. That’s the fatal flaw of outsourcing: it is inherently a blame relationship. When things go wrong, accountability pressure flows out any holes in the perimeter of the organisation. Providers are on the defensive.
2) Outsourcing drives us from a collegial internal relationship to a contractual external relationship for the same resources. Providers have to protect themselves. There is no way in God’s green earth that this is going to be as flexible and responsive as sourcing the resource internally.
3) It might be cheaper but only because you get a commoditised product: one size fits all, lowest bidder, lowest common denominator. The moment you want customisation, the cost is back where you started, or more. The high-value bespoke service providers all play that game: bid low to get the business then make a killing on changes.
4) The higher-value your system, the more locked-in you are to your provider: it becomes exponentially harder to switch.
5) A service provider will always act in their own interest, whatever bull they spout about partnering and common interest. If it comes to the crunch, when times get hard, you lose.
Therefore it only makes sense to outsource commoditised resources such as hardware, networks, telecoms, storage, and servers.
You can outsource a call centre but you shouldn’t outsource a high value service desk.
You can outsource your server cloud but you shouldn’t outsource your continuous delivery pipeline automation.
You can outsource basic programming but you can’t outsource design or development.
You can outsource systems of record but if they hold your systems of differentiation they have you by the balls.
It is the elephant in the room of most DevOps discussions that DevOps inherently assumes internal control of high value resources and activities. Does DevOps work when you have outsourced control of your key value streams? I’m investigating and learning. I welcome comments.