Engineering

Platform Engineering — The Invisible Iron Man Suit That Helps Your Company Fly

Aug 18, 2021

Microservices architecture — Container orchestration, API Gateways, Infrastructure as Code, Shared Identity Providers, etc. have drastically increased the complexity of deploying even a small application in many large organizations that are still navigating the switch from on-premise to cloud-native solutions. This has led to the rise of the “Platform Engineering” role and Platform Engineering teams.

Put simply, a platform engineering team is a cross-functional hybrid of an infrastructure team, a dev tools team, a software engineering team, and a devops team. The goal of this team is to enable application developers to deliver value to end users in a faster, more reliable, and easier manner.

Some examples of what a platform engineering team might be responsible for:

Automating deployment processes.

Standardizing Kubernetes Deployments.

Abstracting shared requirements like audit, logging, and security.

Writing documentation for developers.

Platform teams are best seen and not heard.

Platform teams have a critical role in enabling application teams to deliver value at speed and scale. Additionally, platform teams seem to be the make-or-break piece of a positive developer experience. Many application teams top complaint is: “Why am I learning another (poorly documented) process when I can easily accomplish this myself?” As with many things in life, platform engineering is a balance. In practice, this means any platform team has to balance between freedom and accomplishing key business objectives.

The primary mission of the platform team should be clear — to enable application developers to deliver value to end users in a faster, more reliable, and easier manner.

When the platform team understands this core mission, priorities should easily be aligned. In fact, simple OKR’s (Objectives & Key Results) make it extremely easy to track the effectiveness of the Platform team in enabling their core customers (the application teams). Here are a few examples:

Platform uptime.

Application deployment velocity (Time it takes an application to progress from development, to production).

Number of initial configuration changes to the deployment bundle.

Survey’s of application teams.

In order to continue to improve these OKR’s as well as developer experience, lean methodology can be used to quickly iterate and improve. Following this methodology, a platform engineering team can delight its customers in the same way as an (externally) customer facing team can — by delivering exactly what is needed and improving rapidly.

Prototype loop for lean methodology. Build — Measure — Learn.

One caveat — the Platform Engineering team must be responsible for anything that the platform team breaks (by changing processes, etc.). Because the Platform Engineering team is responsible — an automated process or tool has to be provided for seamless migration/upgrade for application teams. Otherwise, the platform engineering team has to manually fix each app team’s problem. Facebook employs this responsibility model with frameworks and platforms, and it heavily incentivizes automation when it comes to changes. As a rule of thumb, no dev team should have to be involved in platform upgrades.

Platform engineers shouldn’t just focus on enabling the platform for the customer (in this case, the application team). Tools that enable developers to create what the business needs are the Iron Man suit that takes the organization to the next level. In other words, the ideal platform engineering team might look like a dev team with a platform engineering hat.

Organizationally, a platform engineering team (done right) can remove a burden from the Application Developer role and allow development teams to deliver value faster, in a sustainable fashion.

Summary

In many large enterprises, a dedicated platform engineering team (done right) can enable application developers to deliver value to end users in a faster, more reliable, and easier manner. This has many first-order benefits such as:

Increasing speed of value delivery by application teams.

Increased platform uptime.

Automated conformance to business and/or regulatory requirements.

In addition, there are some hidden (second-order) benefits including:

Happier developers since they don’t have to fiddle with configs in order to deliver value.

Increased agility as an organization — sustainable, automated changes and upgrades allow the organization to focus on the important things.

With the right mindset, the platform engineering team can build the Iron Man suit for the rest of the enterprise — ultimately empowering developers to do what they love to do, develop .

Subscribe

Get fresh tech and entrepreneurship stories, tips, and resources delivered straight to your inbox every few weeks.

Engineering

Platform Engineering — The Invisible Iron Man Suit That Helps Your Company Fly

Aug 18, 2021

Microservices architecture — Container orchestration, API Gateways, Infrastructure as Code, Shared Identity Providers, etc. have drastically increased the complexity of deploying even a small application in many large organizations that are still navigating the switch from on-premise to cloud-native solutions. This has led to the rise of the “Platform Engineering” role and Platform Engineering teams.

Put simply, a platform engineering team is a cross-functional hybrid of an infrastructure team, a dev tools team, a software engineering team, and a devops team. The goal of this team is to enable application developers to deliver value to end users in a faster, more reliable, and easier manner.

Some examples of what a platform engineering team might be responsible for:

Automating deployment processes.

Standardizing Kubernetes Deployments.

Abstracting shared requirements like audit, logging, and security.

Writing documentation for developers.

Platform teams are best seen and not heard.

Platform teams have a critical role in enabling application teams to deliver value at speed and scale. Additionally, platform teams seem to be the make-or-break piece of a positive developer experience. Many application teams top complaint is: “Why am I learning another (poorly documented) process when I can easily accomplish this myself?” As with many things in life, platform engineering is a balance. In practice, this means any platform team has to balance between freedom and accomplishing key business objectives.

The primary mission of the platform team should be clear — to enable application developers to deliver value to end users in a faster, more reliable, and easier manner.

When the platform team understands this core mission, priorities should easily be aligned. In fact, simple OKR’s (Objectives & Key Results) make it extremely easy to track the effectiveness of the Platform team in enabling their core customers (the application teams). Here are a few examples:

Platform uptime.

Application deployment velocity (Time it takes an application to progress from development, to production).

Number of initial configuration changes to the deployment bundle.

Survey’s of application teams.

In order to continue to improve these OKR’s as well as developer experience, lean methodology can be used to quickly iterate and improve. Following this methodology, a platform engineering team can delight its customers in the same way as an (externally) customer facing team can — by delivering exactly what is needed and improving rapidly.

Prototype loop for lean methodology. Build — Measure — Learn.

One caveat — the Platform Engineering team must be responsible for anything that the platform team breaks (by changing processes, etc.). Because the Platform Engineering team is responsible — an automated process or tool has to be provided for seamless migration/upgrade for application teams. Otherwise, the platform engineering team has to manually fix each app team’s problem. Facebook employs this responsibility model with frameworks and platforms, and it heavily incentivizes automation when it comes to changes. As a rule of thumb, no dev team should have to be involved in platform upgrades.

Platform engineers shouldn’t just focus on enabling the platform for the customer (in this case, the application team). Tools that enable developers to create what the business needs are the Iron Man suit that takes the organization to the next level. In other words, the ideal platform engineering team might look like a dev team with a platform engineering hat.

Organizationally, a platform engineering team (done right) can remove a burden from the Application Developer role and allow development teams to deliver value faster, in a sustainable fashion.

Summary

In many large enterprises, a dedicated platform engineering team (done right) can enable application developers to deliver value to end users in a faster, more reliable, and easier manner. This has many first-order benefits such as:

Increasing speed of value delivery by application teams.

Increased platform uptime.

Automated conformance to business and/or regulatory requirements.

In addition, there are some hidden (second-order) benefits including:

Happier developers since they don’t have to fiddle with configs in order to deliver value.

Increased agility as an organization — sustainable, automated changes and upgrades allow the organization to focus on the important things.

With the right mindset, the platform engineering team can build the Iron Man suit for the rest of the enterprise — ultimately empowering developers to do what they love to do, develop .

Subscribe

Get fresh tech and entrepreneurship stories, tips, and resources delivered straight to your inbox every few weeks.