Platform Engineering's Next Move: Shifting Governance Down, Not Left
The industry's decade-long push to shift testing and security left onto developers has created burnout and decision fatigue. The answer lies in embedding governance directly into the platform itself.
The emerging direction for platform engineering centers on removing burdens from developers rather than expanding their toolkit. Throughout the past ten years, the "shift left" philosophy dominated forward-thinking engineering teams. The logic seemed straightforward: by moving testing, security, and compliance work earlier in the software development lifecycle (SDLC), teams could identify and resolve problems at their lowest cost. Executives embraced the approach for its promise of greater efficiency. Security departments championed it for the prospect of built-in compliance. Yet developers themselves were never consulted. From the vantage point of a former revenue operations executive now leading in the DevOps domain, the financial consequences are clear: the movement didn't simply redistribute responsibility—it imposed substantial cognitive burden on people whose core function is writing business logic.
It's time for platform engineering to correct this overcorrection.
The industry tasked frontend developers with mastering Kubernetes ingress controllers. Backend engineers were expected to navigate intricate AWS identity and access management (IAM) role chaining. Development environments transformed into dashboards flooded with fifty simultaneous warning indicators. The outcome wasn't accelerated delivery—it was decision fatigue, paralysis from constant context-switching, and widespread burnout. The path forward isn't piling more responsibility onto individuals; instead, it involves "shifting down" the work into the platform infrastructure itself.
The anatomy of shifting down
Shifting down entails moving non-core operational tasks—governance, cost management, security foundations—into the platform layer. A sophisticated platform engineering organization shouldn't focus on constructing better reporting tools that highlight developer mistakes. Rather, it should construct automated safeguards that render incorrect actions nearly impossible, all without requiring developers to review compliance documentation. Two concrete examples illustrate how the sector is transitioning from manual shift-left friction to automated shift-down governance.
1. No more Confluence pages
Under shift-left thinking, enforcement relied on documentation: a Confluence page declaring "All S3 buckets must have versioning enabled and require a CostCenter tag." Success depended on developers reading the requirement, retaining it, and correctly writing the HCL (HashiCorp Configuration Language). In a shift-down approach, developers remain unaware the policy even exists. The platform enforces the requirement at the pull request (PR) stage using Open Policy Agent (OPA) hooks, stopping any `terraform apply` before it executes. Rather than sending Slack reminders, the platform functions as an automated checkpoint. Here is what shifting down looks like in Rego (the query language for writing OPA policies):
package terraform.analysis
import input as tfplan
# Define allowed Cost Centers
allowed_cost_centers = {"engineering", "sales", "product-ops"}
# Rule to deny resources missing required tags
deny[msg] {
resource := tfplan.resource_changes[_]
resource.type == "aws_s3_bucket"
not resource.change.after.tags["CostCenter"]
msg := sprintf("S3 Bucket '%v' is missing required 'CostCenter' tag.", [resource.address])
}
# Rule to validate tag values against allowed list
deny[msg] {
resource := tfplan.resource_changes[_]
tags := resource.change.after.tags
not allowed_cost_centers[tags["CostCenter"]]
msg := sprintf("Resource '%v' has invalid CostCenter tag. Allowed: %v", [resource.address, allowed_cost_centers])
}
This policy carries out several operations:
- It establishes the package namespace.
- It brings in the input document (the Terraform plan) and assigns it the alias `tfplan`.
- It specifies a collection of permitted values for the "CostCenter" tag.
- It then examines each resource change:
- When a resource is an AWS S3 Bucket without a "CostCenter" tag, it produces an error message naming the specific bucket.
- It retrieves the tags and verifies whether the "CostCenter" value appears in the `allowed_cost_centers` collection defined earlier. If the tag value is absent from that list (for example, if someone typed "engineerng" instead of "engineering"), it issues a denial message.
The platform handles the "No," so the developer can focus on the "Yes."
By integrating this Rego directly into the deployment workflow (a standard cloud governance technique in platforms like env zero), the compliance obligation becomes invisible to the developer's workflow. The platform manages the "No," so the developer can focus on the "Yes." Consider the potential at scale: Any policy the platform team needs to enforce can be implemented through the deployment pipeline, spanning dozens or even hundreds of policies tailored to specific provisioning situations.
2. Pre-deployment cost gates
FinOps represents perhaps the domain where shift-left performed worst. Requiring an engineer to manually project the potential monthly cost of an auto-scaling EKS cluster before deployment is impractical. Organizations require financial predictability, yet engineers require speed. Shifting down means the platform intercepts the Infrastructure as Code (IaC) execution plan, runs it through cloud pricing APIs, and produces a cost projection before any resources are created. If a developer submits a PR that inadvertently switches an EC2 instance from `t3.medium` to `x1e.32xlarge`, the platform shouldn't merely record it. It should prevent deployment based on a predetermined budget constraint. The technical approach involves extracting the Terraform plan JSON output, spotting resource modifications, and consulting pricing databases. From the developer's perspective, the experience stays straightforward: their PR receives a comment stating, "This change exceeds our $500/month delta threshold for dev environments. Approval required from @team-leads." The financial responsibility has been transferred down into the automation layer. When these principles are applied broadly, they characterize a contemporary, high-performing platform engineering operation.
The CEO perspective: The ROI of abstraction
Why should an executive care about Rego policies or Terraform plan parsing? Because cognitive load quietly undermines delivery speed. Each hour a senior engineer spends resolving an IAM policy attachment issue is an hour not spent building revenue-generating features. If your platform team constructs only fast paved roads without protective barriers, you're simply enabling your developers to fail more rapidly. The next evolution of platform engineering focuses not on expanding the developer's toolkit, but on relieving their workload. By embedding governance into the platform layer, we return developers to their actual priority: delivering excellent software.
Source: The New Stack