In-house vs outhouse... When does it make sense to use an outhouse?
When you throw a huge party at the barns at your ranch. That's when you use an outhouse.
- You don't want to let the crowds use the "facilities" in your home.
- You don't want to let mere acquaintances invade your privacy.
The same two considerations dictate when and what to outsource: manageability and security. You cannot avoid complexity in IT, but you cannot let it control you either, so you have to unload some and pick your battles wisely.
First, there are the battles that you cannot win alone in which the stakes are high for the enemy but low for you. The hosting of your mail servers falls into this first category. Mail is very important, but not mission critical. Hosting your own mail servers exposes you to attacks that you are not equipped to deflect. It is best to leave such honeypots to specialists and to spare yourself the high maintenance cost and security risks inherent to hosting your own Exchange® server(s). The same can be said of the hosting of file shares. Why bother?
Then, there are battles which are important but are not yours to fight. These are the battles that Line-of-Business software vendors fight with their bugs and changes in their ecosystem and the users' production environment. If they can be trusted with your data, it is obviously best to choose vendors who host and maintain their applications and lease them as a service via the web or Citrix®.
Finally, there are the battles that you must NOT fight because fighting them is not in your interest or too risky. Beware of bright shiny objects, over-engineering, misguided automation, and futile integration.
When this is done, you are left with two battles to fight. First, you need to build, manage, and protect the infrastructure that accesses, hosts, stores, and secures your applications, data, and documents in the cloud and on-premises (365, Google, HCI, etc...). Then, you need to configure and maintain the business applications you need that are not vendor-hosted.