Pillars of Platform Engineering
• Mark Eschbach
What is Platform Engineering?
Platform Engineering is a cross-functional engineering division comprised of a set of domain experts to accelerate organizational software engineering while reducing risk. A mature Platform Engineering unit is able to accomplish this through soft power project via their expertise in the areas of producing software, track record for success, and resolving organizational wide issues. However the path towards a mature Platform Engineering unit requires direct support from organizational leadership to negotiate healthy boundaries and properly utilization of the unit.
Clients of a Platform Engineering division are Software Engineers within an organization. Platform Engineering provides a deep well of expertise for other Software Engineers to interact with. Your customers should not directly interact with your Platform Engineering group.
Platform Engineering can be broken up into the following pillars:
- Developer Experience - Analogous to User Experience team for Software Engineers. They are accountable for understanding and improving developer productivity across the organization.
- Continues Delivery - As experts in delivering software to production they are responsible for being the well of knowledge, paved roads from source to production, and consult with other units on unique constraints and concerns around delivery.
- Shared Infrastructure - This unit is the most tangible in many ways, owning shared technical components related to execution of software within th organization. It is also most dependent on the context of the organization depending on the approach used for execution. In some organizations they provide a paved road of recommendations, in others they are responsible for the operation of underlying clusters.
- Operational Intelligence and Excellence (O&I) - When in production how do you know your software is working and efficient? O&I are your experts who provide visibility into the experience of both developers and users. O&I are your guides through incidents and aggregate such data at an organizational level. They will help units work together to learn from past mistakes while keeping the organization efficient.
What Platform Engineering is Not
Here is a brief list of what Platform Engineering is not:
- DevOps rebranded. DevOps as a philosophy plays nice as a mature Platform Engineering team. Arguably you can not successfully implement Platform Engineering without product teams having solidly adopting the DevOps philosophy. Otherwise the Platform Engineering team acts a fiefdom owning from source into production, which is an anti-pattern.
- SysAdmins: Domain experts in various areas, such as operating systems, kernels, network, etc are important within the shared infrastructure team. However, they truly need to be experts in various areas of concern.
- Fiefdom! Platform Engineering is a sociotechnical unit at heart. All members are first and foremost consultants within the whole organization. Members are both experts in various ares of concern and are able to utilize such knowledge to help others resolve problems or questions.
Platform Engineering Re-summarized
A Platform Engineering division is a sociotechnical force multiplier within a Software Engineer Organization by providing a deep well of excellence on the production and operation of software. It differs from a NOC style approach in that product teams own and operate their particular application suite, potentially on shared infrastructure, with guidance from the Platform Engineering. Successful adoption of the owner + operator philosophy of DevOps is critical to the successful implementation of a Platform Engineering division.
Platform Engineering has been on the rise as a term in the past few years. I have worked with several organizations on establishing new Platform Engineering units, or augmenting existing operational practices to move towards providing what I view as Platform Engineering. Although I stand on the Shoulders of Giants, much of this filters through my experience with what has worked and avoids some pitfalls.