Platform Engineering Is a Bandwagon Worth Jumping on
DevOps practices, coupled with the cloud native technology ecosystem, promised to inject velocity, consistency and efficiency into the way software is built and rolled out.
A side effect of DevOps is that it blurred the lines between development and operations teams, with developers increasingly taking on more operational responsibilities. As the complexities of cloud native deployments increase and with a myriad of cloud native solutions in the market — from monitoring to container security and service mesh — developers are struggling to keep up with all the new tech.
How can we improve the productivity and experience of developers? How can we ensure developers spend more time writing code? Platform engineering may just have the answer, which Gartner defines as “the discipline of building and operating self-service internal developer platforms (IDPs) for software delivery and life cycle management“.
Growing Interest in Platform Engineering
Many customers are jumping onto the Platform Engineering bandwagon and setting up Platform Teams. Puppet’s State of Platform Engineering Report 2023 shows that 51% of companies have setup a platform team in the past three years. These teams generally have the following charters:
- Identify shared requirements from other functions and develop/leverage centrally managed solutions to address these requirements.
- Provide governance and subject matter expertise on centrally managed solutions.
- Enable developers to consume centrally managed solutions, offering an automated and self-service approach with essential guardrails. This can involve leveraging a higher-level interface such as a developer portal.
With platform engineering in place, developers can be abstracted from the complexities of operating underlying solutions. They can focus on writing code supported by a team of subject matter experts and self-service interfaces. This means platform teams can be the ones owning the operations and lifecycle management of the underlying solutions.
Varied Motivations for Adopting Platform Engineering
Initial adopters such as Netflix and Adidas have reaped significant benefits from their platform engineering initiatives.
Why? Both knew exactly what they wanted to achieve and worked backwards to craft a solution: Netflix aimed to unify their engineering experience whereas Adidas sought to shorten the time it took their developers to launch a project and integrate it into their infrastructure.
In my conversations with customers in the Asia Pacific region, adopters typically have unique reasons. I recently spoke with a customer with teams distributed across many countries. For them, having consistency in infrastructure deployment, application development, and security measures across all regions, is a top priority. Their solution is an internal cloud native platform that can be used by their distributed teams. Another customer, hoping to relieve developers from end-to-end responsibilities, such as managing infrastructure, set up a foundational platform team to enable the “plugging-in” of other systems or applications easily.
Don’t Lose Sight of Your Outcomes
What is clear from all of these examples is the importance for companies to establish clear end goals — whether that is reducing developer responsibilities or creating a consistent software development environment. Quick and simple solutions to achieve these targets can then follow. There are three key lessons to follow to keep outcomes in sight:
- Adopt a “think-big, start small, grow progressively” approach. Start with an MVP or a Minimum Viable Platform that will improve developer metrics or address concerns e.g., developer productivity. Over time, you can add functionality to this MVP, or you could also create another MVP. It is not a requirement to just have a single platform.
- Don’t get overly fixated on tools. The literature surrounding platform engineering tend to emphasize the use of “specialized tools and platforms”. While that may be important, companies should evaluate their goals and determine the quickest way to achieve them using the simplest tools available. Unlike what some vendors may suggest, not every company will immediately need an internal developer portal or self-service capabilities. The solution can be as simple as having a central wiki page that captures the most common technical information that your developers need and spend long time searching. It could also be about standardizing on Visual Studio Code editor with Rancher Desktop to enable quick and frictionless Kubernetes iteration on local development machines.
- Implement effective governance, best practices, and technical expertise to guide platform users. This will not only help drive efficiency and consistency but also set up guardrails for the users.
Platform engineering is not about toolchains or internal developer platforms or even IT or Ops capabilities. At its core, it’s a discipline that can help increase your developers’ productive time with as little friction as possible — all the way from the ideation phase to the delivery phase.
While platform engineering is not a panacea for the utopic super-charged developer experience and productivity gains that companies are looking for, it can certainly get you closer to that utopia if implemented incrementally and supported by governance and the right tooling.