Skip to content

Handbooks/Software that stays in use

4Reviewed 14 Oct 2026

Release and deploy/Run the version just verified

Run the version just verified

People run the version the pipeline just verified. The previous version stays deployable, and returning to it is one deploy, not a repair project.

My operating rule: do not put a build in front of people unless the pipeline produced it, and do not retire the previous build until one deploy can bring it back.

The version people run

Fowler's deployment pipeline breaks the build into stages. The first stage compiles and provides the binaries later stages use. Deploying to production is usually the final stage. The pipeline's job is to detect changes that would cause problems in production, including performance, security, and usability, before that final stage.

People therefore run those binaries, not a fresh build assembled on release day. A rebuild can compile different code, pick up a different dependency, or skip a test the pipeline already ran. I do not put that rebuild in front of people. The version just verified is the artifact the later stage already holds.

Fowler, deployment pipeline

Able to deploy, and choosing to

Fowler separates two decisions. Continuous delivery means you can deploy the current version on demand, and a business sponsor could ask for that without anyone panicking. Continuous deployment means every change goes to production automatically. Delivery is the ability. Deployment on every commit is a choice. His continuous-integration article makes the same cut: once main is releasable, whether to put that build in production is a business decision.

He names the benefit of the smaller change: less to go wrong, and easier to fix when a problem appears. Humble's principle is the same pressure from the other side. Work in small batches, because a large handoff is what makes a release expensive. The day, the audience, and the proof you require before that choice stay on the technology delivery field card. This page is the version, and the way back.

Fowler, continuous delivery·Fowler, release is a business decision·Humble, small batches·Technology delivery field card

The way back

Fowler's blue-green deployment keeps two production environments, as identical as possible. One is live. You test the new release in the other, then switch the router so requests go to the new one. If something goes wrong, you switch the router back. The previous version is still running. He is explicit about what the switch does not undo: transactions that arrived while the new environment was live. Depending on the design you may feed both environments, or you may have a residue to deal with. The switch is not a time machine.

The SDLC field card's line is stricter about the mechanism and looser about the shape. The previous version stays one deploy away. I count Fowler's router switch as that return when the old environment is still up. When the old environment is gone, the return is one deploy of the binaries you kept, through the same pipeline stage that deployed the current version. A return that needs a new build, a reconstructed branch, or a repair project means the previous version did not stay.

Fowler, blue-green deployment·SDLC field card

The release

This is the order I use when a version goes in front of people.

  1. 01 VerifyThe pipeline's binaries, not a new build.
  2. 02 DeployThat same artifact, to the place people will use.
  3. 03 RunPeople are on the version just verified.
  4. 04 KeepThe previous artifact is still deployable.
  5. 05 ReturnOne switch, or one deploy, puts it back.
People run the verified artifact. The previous artifact stays returnable.
  1. Deploy the binaries the pipeline already tested. If the release process compiles again, stop and make the final stage use the binaries.
  2. Leave the previous artifact in a place the same stage can deploy. If you use two environments, leave the previous one running until you are willing to lose it as the fast return.
  3. A flag that hides the new behaviour is not the previous version. The previous version is the previous artifact. Hiding a path does not put people back on the build you already verified.
  4. Before you deploy, name what happens to transactions that arrive on the new version if you return. Fowler's residue is part of the release, not a surprise after it.

Fowler, deployment pipeline·Fowler, blue-green deployment

What I inspect

These are the questions I ask of a release. They are my check, not a list Fowler published.

  1. Is the artifact people are running the one the pipeline's later stage produced?
  2. Where is the previous artifact, and can the same stage deploy it once?
  3. Can the previous version start against the data store as it is now?
  4. What arrived after the new version went live, and what happens to it on a return?
  5. If the answer to going back is a project, which step retired the previous version?

How I would know

I keep two checks. How long from deciding the version is bad until people are on the previous version. Whether that return used an artifact the pipeline had already produced, or required a new build. The practice is a return in one deploy, or one switch back to an environment that is still running. A green pipeline with no previous artifact is not the practice. I do not have a target time.

Where I do not use it

Sato's parallel change, also called expand and contract, is how I keep a return possible when the interface has to change. Expand so the old and the new both work. Migrate callers. Contract only when the previous version no longer has to run. I do not contract while that version is the way back.

Fowler describes a retailer who deployed first to employees, then to invited customers, then to everyone. Who goes first, the proof you require, and the watch after release stay on the technology delivery field card. This page does not pick the window.

Blue-green needs two environments as identical as you can make them. Where I cannot keep both, I still keep the previous binaries and a pipeline stage that can deploy them once. I do not describe a diagram of two colours as the return if the old environment is already gone.

Sato, parallel change·Fowler, continuous delivery·Fowler, blue-green deployment·Technology delivery field card

References