Why Migrate to the Cloud?
Challenges in Data Centers
In traditional data centers, the fixed nature of both quality and cost tends to limit velocity. To increase velocity, there must be a degree of flexibility in both quality and cost.
Additionally, introducing innovation within a data center usually requires acquiring new hardware. This process involves budget allocation and encompasses purchasing and staff training. These steps are costly and time-consuming. Furthermore, if the newly adopted technology fails to meet expectations, the investments in hardware and training may become obsolete, leading to financial losses.
Benefits of Cloud Computing
Innovation
In contrast, cloud computing offers substantial advantages for innovation. One of the primary benefits is the ability to experiment with new technologies more efficiently and cost-effectively. Cloud services enable organizations to access and utilize technologies on a demand basis, allowing for using resources for a limited time and at a reduced cost. This approach significantly diminishes the risks associated with investment in new technology.
Moreover, cloud services often come with managed services that provide various levels of abstraction. This level of abstraction relieves organizations from the responsibilities of hardware deployment and software installation. As a result, the threshold for adopting new technologies is substantially lowered, making it easier and more feasible for organizations to explore and integrate new advancements. This reduction in the learning curve is a crucial factor in accelerating innovation.
In summary, migrating to the cloud offers a more flexible and cost-effective approach to innovation than traditional data centers. It reduces upfront investments, lowers the risk associated with new technology adoption, and simplifies integrating and experimenting with new advancements.
Velocity
Often, as companies expand or undergo structural changes, bottlenecks in the software delivery chain can emerge. Consider a scenario where teams delivering business software (stream-aligned teams) experience a bottleneck in a platform team. Such a bottleneck could arise due to a sudden increase in demand for platform services. At its core, the problem often stems from a significant increase in work or from development coupling, where stream-aligned teams are required to adhere to platform updates initiated by requests from other teams that, from their perspective, offer no value—only additional work. This effect of coupling gets amplified with the increase of stream-aligned teams. Another frequent scenario involves stream-aligned teams competing for priority in the platform team's backlog, resulting in blocked features on the roadmap of the stream-aligned teams.
It's important to clarify that this is not a critique of the usage of platform teams. Every organizational setup is distinct, and when properly structured and contextualized, a platform team can be the most suitable arrangement, yielding the most benefit.
In the scenario I wish to outline, a cross-functional team setup, coupled with the 'You Build It, You Run It' (YBIYRI) philosophy, thereby granting end-to-end responsibility for their services, could offer an advantageous arrangement for organizations aiming to optimize software delivery speed. Of course, this approach has its trade-offs. However, the cross-functional YBIYRI setup presents a compelling option for those prioritizing speed because it allows teams to manage their backlog in complete isolation.
It's important to note that the cloud is often a crucial enabler of a 'You Build It, You Run It' (YBYRI) strategy because it facilitates the easy creation of environments that can be managed down to the lowest level. At the same time, it offers isolation, security, and freedom of choice.