Drawing on my experience of joining the platform team at Cloudflare, and leading the initiative to establish a dedicated team for a multi-petabyte scale data platform. The platform serves a diverse set of use-cases, including real-time analytics, internal analysts’ workflows, machine learning, and many more.
Through this project, I gained valuable insights into what it takes to foster a successful platform engineering team.
Before I dive into strategic tips for organising and running a platform engineering team, it is imperative to understand the difference from product engineering. I’ll start with the definition to build up to this difference, then share some more practical tips.
Platform Engineering as a concept existed for a while, but it was mostly found in large enterprises. Recently, with the advent of cloud and microservices at the core of modern software architecture, and their inherent complexities, more1 and more2 organisations are looking towards consolidating recurring themes and leveraging the advantages of economies of scale.
As with most emerging trends, everyone is making up their definition of what Platform Engineering is. Even Gartner maintains multiple definitions for it.3 However, two primary themes consistently recur in all definitions:
- Platform Engineering is a technological approach with the focus on accelerating the delivery of products and the pace at which they produce business value;
- The practice of building and maintaining an Internal Developer Platform (IDP) that provides APIs, tools, services, documentation and support as an abstraction layer between product engineers and the underlying infrastructure. The underlying infrastructure can be made up of cloud services that have been approved for use, an internal cloud, or a specific technology like Postgres that can be used on-premise or in the cloud and so forth.
I’ll focus on the structuring of a single “value stream” within the broader platform engineering team. Even if you start with a monolithic team, it is advantageous to organise it around “value streams” from the start. And as you grow, it will be easier to spin off a “value stream” as a dedicated subteam.4
Platform is a product, and it should be managed as such. It needs a long-lived and stable product team building and running it. The product needs to be coherent, evolving, supported, and designed with the user (customer) in mind.5
Not every platform team is automatically successful, but the successful ones treat their platform as a product. They strive to create a compelling value proposition for application teams that is easier and more cost-effective than building their own solutions.
—State of DevOps Report 2021 > (fun fact: the 2023 report got the subtitle “Platform Engineering Edition”)
In light of the preceding statement, it is hopefully evident that managing a platform engineering team should not be much different to managing any other software engineering team. Numerous resources exist on managing engineering teams6, so I will skip the commonly discussed topics and concentrate on the specific nuances relevant to platform engineering.
As you strive to capitalise on the advantages of the economy of scale, platform engineering teams can rapidly become overburdened. Typically, these teams are small and serve a lot of customers with low communication friction due to the absence of “sale”, “support” roles and the team is only an instant message away, adding to the workload.
A team is innovating when its technical debt is sustainably low, morale is high, and the majority of work is satisfying new user needs.
Platform engineering effort is not directly applied to the business mission and goals, instead it enables product teams to deliver value. This can create a challenge in terms of team health because it may be more difficult to maintain a sense of purpose and alignment with the broader organisational objective. Therefore, it is important for platform engineering teams to establish clear goals and metrics that demonstrate their impact on the business, as well as to foster a culture of collaboration and communication with the product teams.
Here are some tools that will aid you in ensuring sufficient flexibility for the team to innovate and flourish:
- Anchor the platform team’s mission to the company’s goals and objectives.
- Build self-serve functions to avoid having a staff bottleneck. The biggest problem for a successful platform product will be to scale with the number of customers/product teams/use cases rather than data quantity/throughput/etc. Besides, it is always simpler to throw additional hardware at a problem than to add more staff.
- Avoid being overly prescriptive and allow product engineers the freedom and flexibility to innovate on their own.7 If allowing product teams to move more quickly entails some degree of inconsistency, accept it (recall the first recurrent theme of Platform Engineering definition from above—you are there to help business). Don’t build fiefdoms.
- Be cautious of taking on too much too soon. It can be tempting to centralise and standardise early on, but you risk creating bottlenecks and fail to support the business.
To ensure that the platform engineering team is delivering value, the responsibilities should be organised around four critical areas. Neglecting any one of these areas can have a detrimental impact on the others, making it essential to prioritize all four equally.
|Service Product Management
|Understanding the needs of your customers (the product engineers) and ensuring they are met.
|Platform User Experience
|Building self-serve portal, tooling, etc.
|Developing new features as required by the product engineers and improving existing ones.
|Running the day-to-day operations and making sure the platform is available, reliable and secure.
- Define the vision and roadmap for the platform/platform product.
- Work with stakeholders to ensure that the platform is aligned with their requirements.
- Provide documentation, evangelise, and run engagement/consulting “office” hours.
- Foster a community of users through the creation of mailing lists and chat channels, providing opportunities for users to interact with one another, share knowledge, and offer feedback on the platform.
As platform adoption grows, you don’t want the platform team to be overwhelmed with onboarding new users, supporting existing ones and becoming the bottleneck in delivering value to the final customers.
- Implement a self-service portal to simplify the onboarding process for new users and enable them to quickly and easily access the platform’s features and functions.
- Develop supplementary tools to enhance the platform’s functionality, such as tools that enable teams to engage in capacity planning, integrate with the platform, and monitor their workloads.
Develop new features that meet the needs of the business. New features for the platform itself, features that are integrated with other systems, new tools and services, and making sure that the platform is scalable and extensible.
Improve the performance, efficiency, security and reliability of the platform, optimising the code, better algorithms, better system design.
Run the platform on a daily basis: Monitoring the platform for potential performance and availability challenges, resolve issues as they arise, and address security vulnerabilities.
Plan for and execute platform upgrades: This may involve upgrading the operating system, supporting software, etc.
Streamline processes through automation, ensuring that they remain dependable.
Evaluate new hardware through benchmarking, and migrate to superior hardware when necessary.
Undertake capacity planning and management, guaranteeing that the platform can support the requisite workload.
- Platform Engineering expedites business value delivery.
- Platform is a product.
- Anchor the platform team’s mission to the company’s goals and objectives.
- Product engineering is your customer. Be obsessed with your customer’s success.
- Keep in mind the areas of responsibility and make sure you are not neglecting any.
- “By 2026, 80% of software engineering organisations will establish platform teams as internal providers of reusable services, components and tools for application delivery” —Gartner Top 10 Strategic Technology Trends for 2023↩
- Platform Engineering is in the Innovation Trigger phase on the Gartner Hype Cycle. —Gartner Hype Cycle for Emerging Technologies 2022↩
- In their 2022 What Is Platform Engineering? article, Platform engineering is defined as “Platform engineering is an emerging technology approach that can accelerate the delivery of applications and the pace at which they produce business value”. In their Gartner Hype Cycle report, they define it as “Platform engineering is the discipline of building and operating self-service internal developer platforms (IDPs) for software delivery and life cycle management”.↩
- See for example how MediaWiki organises its Platform Engineering Team into Value Stream Teams. This is a great resource if you want to see how others have adopted platform engineering in practice. Usually, people refer to product teams by “value stream” but, I guess, it depends on the level of your perspective. Especially, when you organise your platform teams as product teams (albeit an internal one).↩
- Quoted from the Platform Engineering and the Platform Operating Model article by Tom Geraghty which I encourage you to read as it has additional great thoughts on the topic. Also, recommend consulting the Products Over Projects article.↩
- If you are looking for a starting point, I highly recommend An Elegant Puzzle: Systems of Engineering Management book by Will Larson.↩
- I really like this guiding quote by Dr. Werner Vogels, Amazon CTO: ”If you hire the best engineers, you should trust them to make the best decisions” from his recent article Monoliths Are Not Dinosaurs.↩
- The 2023 State of DevOps Report is full of insights about the importance of product manager role. Here is one: “Interestingly, the data shows the longer a platform team has existed at a firm, the stronger the opinion there should be a product manager on the platform team. At firms in which a platform team has existed for three or fewer years, 60% of respondents identify a need for a product manager; at firms in which a platform team has existed for more than three years, this number rises to 74%.”↩