All posts

What is an Internal Developer Platform really?

An automated onboarding of tools or workflows with no need to learn it all.

Every vendor selling into this space has a slightly different definition of "Internal Developer Platform", which is a good sign the term is popular and a bad sign that most of the definitions are marketing. This is the working one that predicts whether a platform succeeds: an IDP is the sum of the self-service capabilities (provisioning, deployment, observability, secrets, environments) that a platform team exposes to product engineers through consistent APIs, CLIs and a developer portal, so engineers can go from idea to production without filing a ticket.

The important part is the last clause. It says "without filing a ticket", not "without touching infrastructure". The platform's job is to remove the queue. The underlying complexity doesn't go away.

The platform is not the tools underneath it

Kubernetes, Terraform, Backstage and Crossplane are not the platform. They're implementation details the platform hides. A team that stands up Backstage and calls it a day has built a catalog, not a platform, if engineers still have to know Kubernetes YAML to ship something. The test is simple: can an engineer provision a database, a pipeline and an environment without learning the tool that provisions it? If not, you've moved the complexity somewhere else.

Who the platform is for

Team Topologies gives the vocabulary for getting this right organizationally. Four team types matter here:

  • Stream-aligned teams build product features. They are the platform's customer.
  • Platform teams provide self-service capabilities that reduce stream-aligned teams' cognitive load.
  • Enabling teams embed temporarily to help a stream-aligned team adopt something new, then leave.
  • Complicated-subsystem teams own deep technical complexity (say, an OpenShift platform) that shouldn't be duplicated across teams.

Platform initiatives most often fail when the platform team starts doing ticket-driven work for stream-aligned teams instead of building capabilities those teams can use themselves. Once "provision me a database" becomes a Jira ticket assigned to platform engineering instead of a self-service action, the model has collapsed back into the ops queue it was meant to replace, with the same bottleneck under a new team name.

The abstraction layer

With something like Crossplane, infrastructure becomes a set of APIs a template calls. A developer asks for a database through a form or a CLI command. They don't learn Terraform, file an infra ticket or wait on a human to approve the change, because the automated steps are already vetted by the organization's guardrails. Terraform is still there, but nobody except the platform team needs to know it exists.

Where teams get it wrong

The most common failure mode is building more platform than anyone asked for, not picking the wrong tools. A platform designed to anticipate every future need, before any team has adopted the first golden path, loses executive support long before it proves value. There is a reason MVPs exist, but companies seem to forget it when building internal products. Start with the thinnest viable platform: the smallest set of capabilities that removes measured friction. Rather than waiting for early adopters to prove the concept, embed it in the workflow and enforce it after go-live. Everything else is speculative scope that competes with the things people would have used.