By Paul Stack
9/23/2025
Policy as Code didn’t emerge because someone had a brilliant, world-changing idea. It happened because infrastructure teams made a mess. Instead of pausing to rethink how security and compliance policy could be incorporated into infrastructure in a sane way, we reached for the most predictable tool in tech: duct tape made of YAML.
And voilà: Policy as Code. It’s not vision — it's damage control. And now, we parade it around like progress.
Let’s not pretend this was inevitable genius. It was a stopgap measure.
We had a real problem on our hands, and instead of being given the time or space to design an appropriate solution, we patched over it with the fastest thing we could ship.
Instead of cleaning that up, we invented more rules. We didn’t rebuild the house—we just hired more hall monitors to yell at kids for running in the hallway.
The marketing line is excellent: "Shift left! Enforce compliance! Secure the cloud!" Yeah, okay. In reality? It’s governance cosplay.
Write enough OPA rules and you’ll eventually convince yourself you’ve solved something. But let’s be real: you’re just automating the garbage police. IaC was already a repetitive misery, and now you’ve added more of the same.
It’s lipstick on a pig. Except the pig now comes with a Slack bot that pings you every time you forget a tag. Progress!
Here’s the ugly part: Policy as Code is built on not trusting people.
So we invented rules to slap your wrist. Pipelines fail, PRs get blocked, and half the time you’re debugging some policy written in 2021 that nobody remembers. To be fair, part of the promise was real: automate the endless manual compliance grind, stop armies of auditors from trawling through configs by hand. And that mattered. But instead of baking compliance and safety into the system itself, we just shifted the bureaucracy from humans to bots—the rules still pile up, they just break faster now.
This isn’t empowerment—it’s babysitting. It’s the tech equivalent of plastering NO BALL GAMES signs in every corridor. And of course, people still play ball. They just get sneakier about it.
Policy as Code doesn’t remove bureaucracy. It writes it down in YAML.
Now, instead of dealing with messy humans, you’re arguing with a bot about whether your S3 bucket needs server-side encryption enabled or ENABLED (case-sensitive, apparently).
You’re not doing DevOps anymore. You’re trapped in a Kafka novel where an unblinking robot clerk interrogates every commit. The thing that was supposed to break silos has become another silo. Another bottleneck. Another excuse for why your feature is still sitting in "waiting for approval."
And here’s what really stings: Policy as Code only exists because we were too scared to start fresh.
What if, instead of adding another layer of rules, we built infrastructure that was safe by default? What if the system itself guided you toward the right thing, made the wrong thing impossible, and didn’t need a damn YAML mall cop standing guard?
But no. We went with red tape. We automated the nagging. We turned "don’t do that" into an industry.
At System Initiative, we asked: what if the system itself just made the right thing the easy thing?
System Initiative doesn’t punish you when you get it wrong. It makes it hard to get it wrong in the first place. That’s the difference between duct tape and design. Between bureaucracy and real progress.
Policy as Code gives you the illusion of order with dashboards and audits. But nothing underneath has actually changed. The pig is still there. The only difference is that now it files Jira tickets when you try to poke it.
And the worst part? We’re celebrating this. We’re congratulating ourselves for encoding bureaucracy instead of fixing the system.
The future isn’t more rules. The future is making the right thing the easy thing. Until then, enjoy arguing with bots about whether your tag is "env:prod" or "environment=production."
Because apparently that’s what innovation looks like now. We can do so much better! Try it for yourself. Then come join us on Discord and share your story, we'll be waiting!
Paul is an engineer turned product manager who is passionate about the Continuous Delivery and DevOps movements and how they are critical in helping businesses deliver value to their customers.