Building a Platform Engineering Team

Gurnam Madan
3 min readJun 8, 2021

--

The adoption of cloud, DevOps and micro-services (or appropriately sized services) has increased productivity by reducing dependency on centralised infra and operations but on the other hand, has increased cognitive load and expectations from product/stream-aligned teams.

Engineers spend more time on solving cross-cutting concerns instead of focussing on customer problems. Teams also get constrained by not having all the skill sets to own the full application and operations. There is also divergence in management of crosscutting concerns, consistency, security and adoption of sensible defaults. This leads to other challenges with product handovers and rotation of people in different teams.

A lot of organisations have adopted having platform engineering teams to solve these challenges. I wanted to share my learnings from building and running a platform team, hopefully it resonates with what you have experienced.

  • Don’t make it another DevOps team, and don’t relabel existing infrastructure and operations as a platform.
  • What is your platform? Define who your customers are and your platform. How are your platform offerings going to enable delivery, reduce lead time and complexity? Think in terms of building blocks, x-as-a-service and abstractions you want to offer. You will need other skills apart from engineering to have a successful platform.
  • Define team’s purpose, It is crucial to define what the team’s purpose is and how does it align with the strategic intent of the organisation. The focus needs to be around enablement, acceleration, being the multiplying force, collaboration and guardrails.
  • Empathy for Customers, it is important for platform teams to acknowledge that their clients/customers are sitting next to them and you are building the platform for their consumption. Understand what their pain points are and collaborate with them to build your platform. They should be playing a key role in defining your roadmap. I have seen platform teams fail when there is a lack of collaboration and focus on solving problems that are not important for their customers. Good developer experience and operation experience is key for success and adoption.
  • Self Service, build your offerings with self-service in mind to not become the bottleneck and support scaling with new teams. Emphasis on API-Driven, automatic provisioning, bot flows (e.g. slack bots) and observability.
  • Open Source, to ensure you have high engagement and better collaboration adopt an internal open source policy. Encourage and acknowledge all the contributions. As maturity increases and there is better support from organisation think about public open source to contribute back to the community.
  • Adoption, your value proposition for the platform needs to be good so it is the obvious choice. As discussed above collaboration and developer experience play a big part in it. We also found having regular workshops during onboarding or need basis helped a lot with adoption and feedback to improve products. Sometimes more engaged interactions are required to build skills within the teams for adoption.
  • Measure, like any other product, ensure you are capturing metrics on usage of your platform and other key metrics.
  • Funding, this may be more relevant when building a new team. But ensure you are adopting a capacity funded model for platform teams. Treat it as any other build and run team which requires persistence to support your platform and customers.

Please comment your insights as well, would love to know how you are tackling some of these challenges.

--

--

Gurnam Madan
Gurnam Madan

Responses (2)