← All guides

Release management

Sandboxes, deployment tooling, and a change process that ships safely: how to move metadata from a keyboard to production without breaking Friday.

GTM Systems guide

A validation rule shipped straight to production at 4:55 on a Friday once took down every rep’s ability to close a deal for the last three days of the quarter. The rule was correct in isolation. It required a field that a different, older automation cleared on stage change, so the two together made “Closed Won” unreachable. Nobody caught it because there was no sandbox test, no second reviewer, and no rollback plan. The fix took four minutes. Finding out it was broken took a full day of escalations, because the person who shipped it had already logged off. Release management is the discipline that turns that Friday into a non-event: the change would have failed in a sandbox against real automation, a reviewer would have caught the interaction, and a rollback would have been one click.

Editing metadata directly in production feels fast, and it is, right up until it is catastrophically not. The whole point of release management is to make the safe path the fast path, so that “I’ll just make this one change live” stops being tempting because the governed route is barely slower and cannot take down a quarter.

0
Changes that belong straight in production
1 click
Rollback when the change was a deployment
75%
Minimum Apex coverage SF requires to deploy

The environment ladder

Metadata should climb a ladder before it reaches reps: build in a developer sandbox, integrate and test in a partial or full sandbox loaded with representative data, then deploy to production. Each rung exists to catch a different class of failure. The dev sandbox catches “does it work at all.” The partial sandbox catches “does it work against real data and the automation already there.” Production is where you find out you skipped a rung.

The trap is testing against an empty org. A validation rule looks fine in a dev sandbox with three fake accounts and detonates in production with 160,000 real ones and a decade of odd historical data. Load a partial or full sandbox with production-shaped data, or you are testing a hypothesis, not the change.

The deployment pipeline Metadata climbs; nobody types in production
Dev sandboxbuildPartial / fulltest on real dataProductiondeploy, don’t typethe Friday shortcut that breaks the quarter
Build in dev, integrate against real data in a partial or full sandbox, deploy to production through a repeatable tool. The dotted path (keyboard straight to prod) is the one that takes down Friday.

Pick the tool that matches your change velocity

Salesforce gives you three native routes and a healthy third-party market. Change Sets are point-and-click, need no git, and are fine for a low-velocity org, but they cannot roll back, cannot diff, and forget nothing gracefully. The SF CLI plus a git repo gives you source control, diffs, and history, at the cost of a learning curve. DevOps Center is Salesforce’s free managed pipeline on top of git. Gearset and Copado are the paid tools that add real diffing, automated rollback, and data deploys.

# The safe deploy: validate against production without committing anything,
# run the local test classes, and only then deploy for real.
sf project deploy start -d force-app -o vinaydev --dry-run -l RunLocalTests
sf project deploy start -d force-app -o vinaydev -l RunLocalTests

The dry run (--dry-run here, --checkonly in older CLI) is the single highest-value habit. It compiles the metadata against the target org and runs tests without persisting anything, so a coverage failure or a broken reference surfaces before it lands, not after.

Change Sets CLI / DevOps Center / Gearset
Source control None; the change set is the only record Git; every change has an author, a diff, and a history
Rollback Manual and error-prone; rebuild by hand Redeploy the prior commit; Gearset automates it
Diff before deploy No real diff; you trust the component list Line-level diff of what actually changes
Best when Low velocity, one admin, simple changes Multiple builders, frequent releases, audit needs
Change Sets are fine for a slow org that ships rarely. Anything with velocity or a rollback requirement needs source-driven tooling.
Where a change gets caught, by process maturity
A dry run and a sandbox test move failures left, where they cost minutes. No process means failures land in production, where they cost a quarter. Illustrative.
View as table
StageValue
Type in production0% caught pre-prod
Change Set, no test30% caught pre-prod
Sandbox + manual test70% caught pre-prod
Dry run + tests + review95% caught pre-prod

The change process wrapped around the tool

Tooling moves metadata; process decides what is allowed to move. The minimum viable process is a request, a reviewer, a sandbox test, and a rollback plan. None of it needs to be heavy. The reviewer is often just a second admin reading the diff for five minutes, which is exactly the five minutes that would have caught the validation-rule interaction above.

Shipping a change without breaking a quarter
  1. 1

    1. Capture the request

    What changes, why, and which objects it touches. A ticket, not a Slack message that scrolls away.

  2. 2

    2. Build in a dev sandbox

    Never in production, never against three fake accounts. Build where a mistake reaches no reps.

  3. 3

    3. Test in a partial or full sandbox

    Load production-shaped data. Confirm the change works against the automation and history already there.

  4. 4

    4. Dry-run the deploy

    Validate against production with tests, no commit. Coverage and reference failures surface here, for free.

  5. 5

    5. Get a second set of eyes on the diff

    Five minutes of review catches interaction bugs one builder cannot see alone.

  6. 6

    6. Deploy off-peak with a rollback ready

    Not 4:55 on a Friday. Know the prior commit or change set you redeploy if it goes wrong.

Release management is the difference between a system you change with confidence and one you are afraid to touch. The ladder catches failures where they are cheap, the tool makes rollback a click instead of a rebuild, and the process puts a second pair of eyes on the one interaction the builder could not see. Stand up the ladder, pick a source-driven tool, and never let a keyboard reach production again. Friday will thank you.