---
type: "blog-post"
coverImage: "https://images.unsplash.com/photo-1512187849-463fdb898f21?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1932&q=80"
title: "Platform Engineering: The next era of ops"
description: "Platform engineering is a new methodology that takes a user-centered approach and treats developers as stakeholders, ultimately leading to improved software quality and time-to-market. Platform engineering provides an opinionated and curated view of the platform, benefiting feature squads by streamlining development and improving collaboration between teams."
draft: false
authors:
- "kjuulh"
date: "2023-04-05"
updates:
- time: "2023-04-05"
  description: "first iteration"
tags:
- '#blog'
---

# Introduction

In recent years, the field of software development has witnessed the emergence
of several new trends and methodologies. DevOps, which combines operations with
software development, was one of the first such trends to gain widespread
popularity. While it brought about significant improvements in the development
process, it ultimately reached a point of stagnation, leaving room for further
innovation.

One of the newer trends that has emerged is platform engineering. This approach
builds upon the foundations laid by DevOps but takes a more product-oriented
mindset to delivering value. Platform engineering involves creating and managing
the technology infrastructure that supports an organization's applications and
services. It combines operations with systems development, with the aim of
improving efficiency, reducing downtime, increasing scalability, and enhancing
security.

The key goal of platform engineering is to bring value to engineers and treat
them as stakeholders. This means taking a user-centered approach to building and
maintaining the technology infrastructure that supports the development process.
By doing so, organizations can increase developer productivity and job
satisfaction, ultimately leading to improved software quality and faster
time-to-market.

## Why platform engineering

Adopting a new methodology requires a reason. Platform engineering may not be
suitable for every company, but it is ideal for medium-sized companies with a
sizable engineering team. It's worth noting that platform engineering isn't
solely for operations; it can be used for any type of platform, not just
infrastructure services.

The primary motivation for implementing platform engineering is to serve a large
number of developers who rely on a relatively uniform tech stack. When starting
from scratch, platform engineering allows teams to collaborate with
stakeholders, such as developers, to define the product – the platform itself.

However, platform engineering can also be adopted or evolved from existing
DevOps or SRE teams, or it may grow from an enabler squad if their product is
beginning to see significant usage within the company.

Several principles guide platform engineering

- The platform must be under control and in service of its stakeholders.
- The platform should bring value to the business through its developers.
- If its services are needed beyond the company, the platform must evolve into a
  feature squad while maintaining its previous connections. Maintaining a direct
  and stable connection to developers is critical to keeping the platform
  focused.

## Differences to existing methodologies

Platform engineering operates at a higher level of abstraction than SRE or
DevOps. While SRE oversees infrastructure or direct services for the business,
and DevOps aims to bring together developers and operations, platform
engineering provides an opinionated and curated platform to feature squads. This
can take various forms depending on the company, ranging from CLI tools or
Jenkins plugins to overseeing the entire development journey, from project
creation to day-2 operations.

Platform engineering can enhance feature squads to the extent necessary, without
ever interfering with the actual business domain. A platform engineering team
can collaborate with a feature squad to develop a business feature, as long as
the feature squad retains ownership and the platform engineer is there to gain
experience in using the product they build. However, this should not be the
first option, as it can be a costly exercise.

Overall, platform engineering provides a valuable perspective that can benefit
feature squads. Its focus on providing an opinionated and curated view of the
platform can help streamline development and improve collaboration between
teams. By working together, feature squads and platform engineering can create a
more efficient and effective development process while maintaining clear
ownership of each project.

## Modes of Operation in Platform Engineering

Platform engineering has two primary modes of operation, which in some ways
mirrors how a business serves another business (B2B):

- Product discovery
- Product maintenance and evaluation

This is a continuous cycle of discovering, building, maintaining, and evaluating
products to ensure that they meet their intended goals and remain relevant. The
key difference between B2B and platform engineering is that the latter is far
more opinionated and direct, building opinionated tools rather than generalized
products to serve the needs of developers and business services.

It's important that platform engineering teams operate independently rather than
being embedded within business teams, although they should have reasonable
feedback mechanisms in place. This can include joining guilds to participate in
general discussions with business teams, spending time with business teams to
collaborate on development, or providing outreach through talks and training
sessions. This two-way exchange provides an opportunity for platform engineers
to receive feedback on their products while also enabling business teams to
learn how to use them effectively.

By maintaining this feedback loop and focusing on opinionated tools that meet
the needs of developers and business services, platform engineering teams can
ensure that they provide a valuable service to the organization as a whole.

# Conclusion

Platform engineering is a methodology that combines operations with systems
development to create and manage the technology infrastructure that supports an
organization's applications and services. By taking a user-centered approach and
treating developers as stakeholders, platform engineering aims to increase
efficiency, reduce downtime, enhance security, and ultimately improve software
quality and time-to-market. It provides an opinionated and curated view of the
platform, which can benefit feature squads by streamlining development and
improving collaboration between teams.

Platform engineering operates in two primary modes of operation: product
discovery and product maintenance and evaluation, and it's essential that
platform engineering teams operate independently but maintain feedback
mechanisms to receive feedback on their products while also enabling business
teams to learn how to use them effectively. i
