First of all, “hidden” costs don’t mean features or fees that get folded into a sale at the last minute. They mean expenses of ownership and operation that weren’t anticipated ahead of time, and which often result from a misunderstanding of how to properly take advantage of the cloud.
In my experience, there are two common contributors to these hidden costs: failure to integrate, and failure to optimize.
Integration: Moving to the cloud generally means moving some systems and applications (or portions of them) to the cloud and leaving others as is. This creates a chasm, however, between cloud-based and on-premise systems, which you have to integrate by overlaying application programming interfaces (APIs) that allow your disparate systems to work together. Failing to integrate means that your software-as-a-service (SaaS) systems become increasingly siloed from everything else, which leads to data duplication and discrepancies. Complicating matters further, integrating and maintaining these cloud and on-premise technologies adds a layer of complexity and cost that many companies don’t consider when the decision is made to move some systems to the cloud, which can create both operational and budgetary concerns if not properly accounted for.
Optimization: I’ve also seen companies migrate systems or applications to the cloud and assume that their work was done — as if simply “moving to the cloud” is enough to take advantage of the expected efficiency and savings. That, however, is not the case. What makes the cloud effective is its elasticity: The cloud allows you to shift capacity as needed, putting more computing power behind systems or applications when usage is heavy and — the most important part — lowering that support when usage is lower. If you don’t fluctuate resources (CPU, RAM, storage, VMs, etc.) in tandem with usage, you’re just leaving the faucet running. Companies who do this aren’t benefiting from the efficiencies and savings they expected, so to them it appears as if they’re suffering from some kind of “hidden cost.”
Implementation itself can also create issues. Oftentimes, such work is done on an ad-hoc basis across departments rather than as part of a wider cloud plan, with little to no control over who is in charge of what. This is wasteful at best, both in time and money spent. At worst, it can disrupt critical business functions. Without proper controls and defined lines of authority over who is in charge of what, cloud implementations can become a giant mess for all involved. Proper planning is crucial.