Categories

Scaling DevOps and delivery with a platform (Leigh Brackley)

One of the impacts of the Covid-19 pandemic has been the increased urgency with which firms approach digital transformation. These initiatives aim to improve customer satisfaction, retention and acquisition through the development of modern applications to increase agility for faster delivery of products and services.

Modern application development necessitates breaking down applications into smaller value streams, delivered as independent services by agile teams via the cloud. But in order to do this, teams must of course possess the requisite skills to build, deploy and operate secure, cloud-native applications. Increasingly, firms that fail to ensure service teams develop these skills will struggle with digital transformation.

To enable organizational agility, service teams must be empowered to build and deliver at pace by embracing DevOps. However, Gartner predicts that “By 2023, 90% of enterprises will fail to scale DevOps initiatives if shared self-service platform approaches are not adopted.”

In this article, I will explain why the adoption of a DevOps platform is the most cost-efficient and effective means of scaling DevOps across an enterprise.

The barriers to scale

Breaking down the large monolith into smaller independent services creates a problem of scale. Teams need a foundation of delivering, testing, operating, and monitoring their services, which creates work duplication, inconsistency, and competition for key skills if teams implement this independently.   

Value Stream Maps help organizations quantify this by detecting waste and identifying opportunities to optimize value. A good measure of success is to baseline the number of touchpoints a service team requires to complete work and improve. 

To remove these barriers, organizations must create a repeatable and consistent implementation model. The 2020 State of DevOps Reports identified that “Highly evolved firms are six times as likely to report high use of internal platforms as firms at a low level of DevOps evolution.” 

Failure to address barriers will expose service teams to context switching and high cognitive drain. The required mindset and knowledge of specific operations and centralized tools create a wall that is difficult to climb.

A platform to guide them

Effective DevOps platforms ensure agility and consistency of delivery by providing the rails developers can lean on to build and deliver their services. They reduce the cognitive load for developers to get started without having to understand the entire journey right away, learning as they go, and utilizing features as and when they are needed.

A multi-tenant, self-service, and developer-centric platform will enable the rapid introduction of new DevOps capabilities across the organization, facilitate inner-sourcing and drive cross-pollination between teams.

Increasingly, particularly in the wake of the pandemic, organizations are moving away from piecemeal DevOps adoption and towards DevOps platforms to achieve scale.

A product owner for the platform

For the platform to be widely adopted, a product mindset must be taken, seeking feedback on user experience, desired capabilities, and articulating the roadmap. The 2020 State of DevOps Report stresses that “a product mindset is key to scaling DevOps and your platform. Highly evolved firms are nearly twice as likely to be highly product-oriented as firms in the middle of their DevOps evolution.”

It is the product owner’s responsibility to understand the requirements and challenges of each service team and pool this understanding to create a common developer experience (DX). This process will uncover systematic issues within an organization and the platform’s success will be dependent on identifying the problem domains across the enterprise and taking accountability for solving them.

Design thinking must be employed in the early stages to understand how developers like to work and interact, what tooling they are comfortable with, and what common pain points across service teams exist.

Using lean agile to continuously improve the platform usability and introduce new capabilities as and when developers need them is key for adoption. One way to test the effectiveness of the platform is to measure the time it takes for a newly onboarded developer to create a Hello World application from start to finish.

Build vs buy

Key considerations when deciding on a platform investment strategy are lack of time, lack of standardization, and lack of technical skills.

Off-the-shelf products can help firms accelerate their platform journey, particularly if they are in the early stages of implementation. Vendors have invested heavily in this space and offerings such as Red Hat’s OpenShift Container Platform and Heroku are popular choices.

At the same time a rich, non-profit, vendor-neutral ecosystem exists and is curated by the Cloud Native Computing Foundation. Its mission is to bring together the world’s top developers, end-users, and vendors and it runs large open-source developer conferences. If your organization has the appetite and technical skills to embark on this journey, working with, and contributing to this community is a viable option.

Regardless of the path taken, and they are not mutually exclusive, standardization is a must to help constrain the problem space and solve for it. In future articles, I hope to share thoughts and lessons learned on how to craft a platform that will empower engineers to deliver, test, operate, and monitor their service and solve the problem of scale.

Source