Platform Engineering: What It Is and Why It Matters
Your developers can deploy to production, but only after they find the right pipeline, copy a Terraform module, ask security which policy applies, and wait for someone in infrastructure to approve a ticket. You do not have a tooling problem. You have made every product team integrate your delivery system by hand.
I have seen this setup presented as autonomy. Every product team owns its path to production, so every product team learns cloud networking, identity, CI syntax, observability, compliance controls, and half a dozen local conventions. The ownership is real. So is the waste.
Platform engineering is how you remove that repeated integration work without rebuilding a central ticket queue. It is the practice of designing and operating shared capabilities as an internal product. Your developers are its users. Their ability to deliver software safely is the outcome.
That definition matters because the label has become cheap. Renaming an infrastructure group does not create a platform. Installing a portal does not create one either.
Start with friction, not a platform team
Section titled “Start with friction, not a platform team”Platform engineering becomes useful when the same delivery problems appear across several product teams.
A new service needs a repository, a pipeline, an identity, an environment, deployment controls, logs, alerts, and ownership metadata. If each product team assembles that path alone, you pay the integration cost repeatedly. The implementations drift. Security reviews arrive late. Experienced developers become unofficial guides for everyone else.
The cost shows up as waiting and cognitive load. A developer working on payments-api should not need to understand every detail of Kubernetes admission policies or cloud identity federation to ship a routine change. Those details still matter, but they should be handled by people and systems designed to manage them.
The CNCF Platforms White Paper describes the goal clearly: reduce cognitive load, improve reliability, and reuse capabilities across product teams. It also says a platform must be self-service, composable, secure by default, and designed around user needs.
This gives you a useful test. If only one product team has the problem, help that group directly. If five groups maintain near-identical deployment glue and wait on the same manual approvals, you have a platform candidate.
Do not create the platform organization first and search for its purpose later. I have seen that produce roadmaps full of infrastructure features that nobody requested and migrations that solve no measured problem.
The platform is a product, not a portal
Section titled “The platform is a product, not a portal”An internal developer platform is the product created through platform engineering. It combines the capabilities, interfaces, documentation, support, and operating rules that let your developers complete delivery tasks.
A portal may be part of that product. It can expose a service catalog, templates, documentation, ownership, and operational data. Backstage documentation shows how those pieces can create a consistent front door.
But a front door is not the service behind it.
Imagine that your portal has a polished “Create database” button. Clicking it opens a ticket. Three days later, an infrastructure specialist asks for information already stored in the service catalog. Security approval happens in another queue. Credentials arrive in Slack.
You built a new interface for an old dependency.
A real self-service path would validate the request, apply approved defaults, provision the database, bind the workload identity, configure backups and monitoring, and return the connection information. The developer can observe what happened and knows where to get support. Exceptions still have a route, but the common case does not depend on a meeting.
Google Cloud’s platform engineering myths guide makes the same distinction: a portal is an interface, while the wider platform abstracts and codifies the delivery capabilities beneath it.
This is also why platform engineering is not “advanced DevOps.” DevOps gives you principles such as shared ownership, automation, continuous delivery, and fast feedback. Platform engineering packages repeated delivery capabilities into a product that many teams can consume. It scales good DevOps practices; it does not replace them.
Build a paved road, not a railway
Section titled “Build a paved road, not a railway”Standardization can reduce waste. It can also become a central architecture group forcing every workload through one design.
The better metaphor is a paved road. For a normal web service, the supported path should be the fastest and safest choice. A repository template might include the pipeline, deployment configuration, baseline policy, telemetry, and catalog metadata. Updates to those capabilities should flow back into the path instead of becoming work for every product team.
The road should not trap its users.
The CNCFCloud Native Computing FoundationA Linux Foundation project that hosts and governs open-source technologies for cloud-native software infrastructure. paper calls good platforms optional and composable. If your graph-processing workload needs a database the platform does not provide, you need an explicit escape hatch. The product team accepts the extra operational responsibility; the platform does not pretend the exception fits.
This balance changes adoption. A mandate can force usage numbers upward while developers route real work around the platform. The CNCF Platform Engineering Maturity Model distinguishes that “extrinsic push” from “intrinsic pull,” where users return because the platform gives them clear value.
Your aim is not complete control. It is to make the supported path good enough that developers choose it.
Measure whether the journey improved
Section titled “Measure whether the journey improved”Platform teams often report what they shipped: templates, APIs, plugins, cloud accounts, pipeline versions. Those numbers describe output. They do not tell you whether delivery became easier.
Measure the journey instead. The practical method is to combine developer-reported evidence with workflow telemetry, diagnose a complete journey, and test one reversible improvement.
For one path, record four things:
- elapsed time from request to a usable capability;
- waiting time caused by approvals or handoffs;
- task success without direct platform-team assistance;
- developer confidence and satisfaction after completing the task.
The CNCF white paper suggests related measures such as request-to-fulfillment latency, time to deploy a new service, and time for a new developer to make a first change. Google’s application of the HEART framework to platform experience adds adoption, retention, happiness, and task success.
Then connect these signals to software delivery outcomes. The DORA 2024 report associates internal developer platforms with better individual productivity, team performance, and organizational performance. It also reports lower change stability and throughput in its sample.
That warning deserves attention. A platform can speed up the wrong workflow, add another abstraction nobody understands, or encourage larger and riskier changes. Platform adoption is not proof of delivery improvement. Track both.
I would rather see one deployment path cut waiting time from two days to twenty minutes than a portal with fifty integrations and no evidence that developers can finish their work.
Start thinner than your ambition
Section titled “Start thinner than your ambition”Spotify’s Backstage story is attractive because it shows what a mature developer portal can become. Spotify described an internal installation with more than 100 integrations in its 2020 account, “What the Heck is Backstage Anyway?”. That is evidence of years of evolution inside a large engineering organization. It is not your first milestone.
Start with one repeated journey and one partner product team.
Choose a task with visible friction, such as deploying a new service or provisioning a database. If cloud foundations are the bottleneck, start with a progressive landing zone rather than a complete foundation. Map every step, wait state, manual decision, failure point, and owner. Establish a baseline. Build the thinnest self-service path that can improve the whole journey, including documentation and support.
Put it in front of real users early. Watch them use it. If they still message the platform engineer who built it, the path is not self-service yet. If the golden pathGolden pathA supported, self-service route that packages an organization’s preferred tools and practices for a common software delivery task. only works for the demo service, it is not ready to scale.
After the first release, ask whether users return for the next suitable workload. Voluntary reuse is stronger evidence than a launch announcement.
Platform engineering matters because modern delivery systems ask every developer to carry too much organizational and technical context. The fix is not another layer of tooling. It is a product relationship between the people building shared capabilities and the people trying to ship software.
When you are ready to turn that diagnosis into a first platform increment, How to Build an Internal Developer Platform: Start With One Developer Journey shows how to define the journey contract, compose the vertical slice, and expand from evidence.
Pick one developer journey this week. Measure its waiting time, handoffs, and failure points. Then remove one source of friction end to end before you name a platform team or buy a portal.
Article series
Platform Engineering: From Friction to First Journey
Explore every resource in this series, whatever its format.