There is one ALM rule in Power Platform that I enforce on every engagement without exception: managed solutions only in production. No exceptions. No "just this once." No "we will sort it out later."

Later never comes. And when something breaks in a production environment full of unmanaged components, the cleanup takes weeks.

What the difference actually means

An unmanaged solution is how you develop. Components in an unmanaged solution can be edited directly in the environment where they live. If you delete an unmanaged solution, the components stay behind — they become orphaned in the environment.

A managed solution is how you deploy to production. Components in a managed solution cannot be edited in the environment where they are installed. The solution manages its own components — if you delete the managed solution, the components go with it. The environment stays clean.

This distinction is everything. It is the difference between a production environment you can reason about and one that accumulates years of unmanaged changes that nobody fully understands.

Why teams skip it

The most common reasons I hear:

What the deployment path should look like

Developer builds in → Dev environment (unmanaged)
          ↓
Export managed solution from Dev
          ↓
Import to Test environment
          ↓
Business UAT sign-off
          ↓
Import managed solution to Production

Every step is documented. Every deployment is traceable. The production environment only ever receives managed solutions — it never has direct edits made to it.

The automation case

Once you accept managed solutions in production as non-negotiable, the natural next step is automating the deployment pipeline. Azure DevOps with the Power Platform Build Tools makes this straightforward. You can have a pipeline that:

Once you have seen a fully automated deployment pipeline run its first production deployment, you will never want to go back to manually exporting and importing solutions.

What to do if you already have unmanaged solutions in production

Start a remediation programme. Do not try to fix everything at once. Identify the most critical solutions, rebuild them properly with managed deployment, and retire the unmanaged versions one by one. It takes time, but each solution you migrate is one fewer liability in your production environment.

The rule is simple: develop unmanaged, deploy managed. Everything else in Power Platform ALM is commentary on this rule.