Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
Salesforce Developer
medium

What is a Managed Package and what are the implications for developers?

A Managed Package is a distribution unit ISVs publish on the AppExchange. Once installed, components carry the publisher namespace prefix and are upgrade-managed.

Key developer implications:

  1. Namespace prefix: every API name is prefixed (acme__Field__c). Code outside the package referencing these names must include the prefix.
  2. Code is hidden: customers can't see your Apex source.
  3. Schema is partially open: customers can add fields to packaged objects but can't remove the packaged ones.
  4. Versioned upgrades: new versions install over old; can add fields/classes; can't easily remove without deprecation.
  5. Global vs Public APIs: only global Apex is accessible from outside the namespace. Be deliberate.
  6. Test coverage: package code must have 75% test coverage with tests included.
  7. Subscriber sharing: package code respects installing org sharing if with sharing.
  8. Package limits: managed packages have their own limits separate from customer's org limits.

For developers: architect for upgradability, use Unlocked Packages for internal modular dev, test in real subscriber orgs, version interfaces.

For developers in customer orgs with packages: don't depend on internals (only global is stable), reference by full namespace, watch the upgrade cycle.

Why this answer works

ISV-side senior question. The "global vs public" and "namespace prefix" details are foundational; the upgrade-cycle awareness is mature.

Follow-ups to expect

Related dictionary terms