Every few months I hear someone say “we already have ARM templates, let’s not refactor.” Every time, six months later, that same team is stuck debugging a template that nobody on staff still understands.
Here’s why I push every client onto Bicep.
It’s the same resource model#
Bicep compiles to ARM. It’s not a translation, it’s not an abstraction — it’s the same engine, same deployment API, same validation. You aren’t introducing a new runtime risk.
It’s ~60% less code#
A reasonably complex landing zone in ARM JSON is 4,000 lines. The equivalent Bicep is somewhere around 1,400. The reduction isn’t cosmetic — less code means fewer bugs, faster reviews, faster onboarding for the engineer who joins in six months.
Loops that don’t make you cry#
Deploying 20 storage accounts across 20 resource groups in ARM involves nested templates, copy loops, output chaining, and a minor existential crisis. In Bicep, it’s a for loop. That’s it.
Module composition that actually works#
Bicep modules take typed parameters, return typed outputs, and can be version-pinned to a registry. You can build a real component library. In ARM you can do this too, technically, if you enjoy pain.
VS Code tooling that does what you want#
The Bicep extension knows every resource type, every API version, every valid property. Autocomplete works. Validation is instant. The “go to definition” and “rename symbol” refactors are genuinely good. None of this is true for ARM JSON.
“But our CI pipeline runs ARM”#
It still will. bicep build outputs ARM. Your pipeline doesn’t care.
“But we have hundreds of templates”#
The bicep decompile command gets you 80% of the way. The remaining 20% is the stuff you should have fixed anyway — hard-coded values, copy-pasted blocks, that one parameter that’s never set.
“But Terraform”#
Terraform is fine. Use Terraform if your team already lives in Terraform. But don’t leave them on ARM out of inertia. The worst outcome is the one you already have.
The switch usually pays for itself in the first month of saved review time. I have yet to see a team regret it.
