What does the cloud look like for software companies?
Tags: webdev, software, platform, cloud
Published: 2022-04-25 07:34:35

---
title: What does the cloud look like for software companies?
published: true
description:
tags: webdev, software, platform, cloud
series: "The future of cloud"
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xqicb70m0svgvs0htaa8.jpg
---

When I hear software companies are _transitioning to the cloud_, I generally take it with a pinch of salt because I am not sure if they know what they mean. But, what do they really mean?

This is a rough, unpolished thought but I think we should put more emphasis on distinguishing between **transitioning to the cloud** vs **becoming the cloud**. In other words, we shouldn't mistake the _cloudifification_ of the software with the _evolution_ of the software towards the services economy. 

Let me be more specific.

## Transitioning to the cloud vs. becoming the cloud

On the one hand, when a software company **transitions to the cloud** it typically means they are taking their existing software products and moving them to a fancier data center (i.e. "the cloud"). What motivates this change for software providers? In my experience, this is typically a reactive move after their customers have moved all their stuff to the cloud. Operating on new cloud infrastructure, these customers will ask software providers for mechanisms to integrate the software with other infrastructure components on the new cloud platform. The answer is then to lift and shift the software onto AWS EC2 instances so it can integrate better with the customer's AWS S3 buckets.

While this transition changes the delivery model and ownership of the software (i.e., it is now delivered through the internet) on many occasions there is a tendency to leave it untouched without rethinking how the customers will use it in this new world. Typically, these are enterprise software companies that still allow customers to work with their software in the same way they did before the transition to cloud. Now, it just happens that they are operating in a more reliable, secure, and scalable environment (i.e., a fancier data center). This way, customers can still do whatever customizations they used to apply without any restrictions. In order to give these customers full control as they used to have, these software companies end up building complex control planes and integrations that mimic the underlying cloud platform consoles in an attempt to enable full control to the customers.

On the other hand, when a software company **becomes the cloud** they not only move their software to the cloud, but they also rethink their product strategy by offering many of the software capabilities in a self-service manner. In other words, they move forward the industrialization line towards the services economy. We've got 2 options here:

- Option 1: software companies create guidelines and constraints to allow users to customize the software in a very specific and controlled way. This is how the gurantee evergeen updates to the _untouchable_ parts. For that, they create platform abstractions and tools for these users to create extensions or even entirely new applications within the boundaries of the platform they have been offered. This is Platform as a Service or PaaS, where the customers own the data and the code.

- Option 2: software companies eliminate all customization possibilities and rethink how their software is offered as a service, allowing the users to introduce only certain and restricted configurations for their use cases. This is Software as a Service or SaaS, where the customers only own the data.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xyyoz6yv7ub8am3evssu.png)

## The evolution of the enterprise software

I think a safe strategy in the current legacy enterprise software industry (i.e., B2B) is to **become the cloud** and offer both **Build and Buy** options to the their customers:

- So-called _core_ legacy systems could be offered through SaaS with self-service configuration capabilities to final customers. These applications typically are important to sustain the business ... but they are also the cost of doing business. For example, the cost of having customers is managing relationships and offers (e.g., with a CRM such as Salesforce) and the cost of shipping goods is managing a supply chain (e.g, with an ERP such as SAP Ariba). Typically companies do not differentiate between each other thanks to these types of systems.

- Building the so-called _digital experience_ applications could be offered through PaaS with constrained customizations and developer tools. This way, consumer companies have full control on how they build these types of applications, while the software provider does not leave them alone, giving them platforms to build users experiences with efficacy. Yes, these are the applications that companies want to build because they are differentiating and help them achieve competitive advantages. For example, insurance carriers differentiate between each other for the Quote and Buy experience they offer to final consumers, so they can capture more business. That's why the want to build them.

## What is the cloud anyway?
I know what you might be thinking: 

>_"But, wait a minute Pablo, I thought cloud companies are just those that own data centers and offer infrastructure resources as a service, like AWS"_.

While this is entirely true, owning a data center and offering infrastructure or runtime services through an HTTP endpoint is not a necessary precondition for any tech company to become a **cloud company**. Let's pause for a moment and think about what cloud services actually are. The term has been so used and abused that it makes people think that cloud services are just those offered by AWS, Microsoft, or Google. However, the term cloud services capture the industrialization of the technology and practices of any business to offer their capabilities as commodities, moving from competing in the product space to competing in the services space. Top that with sprinkles of self-service and evergreen updates and you'll become a true cloud company!

That's what cloud services are all about, and that's why software companies of all kinds can become cloud companies too. 

That's **the cloud**.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tsbb6guygh8jrgg3afrr.png)

Follow me on [Twitter](https://twitter.com/peibolsang) to keep the conversation going!

_(Cover photo credits: Javier Allegue Barros via Unsplash)_