Shipped on Friday, released on Monday
The feature is finished and cannot ship, because shipping it means turning it on for everyone at once and nobody wants to do that on a Friday.
So the branch sits, drifting from main, more expensive to merge every day. The problem is not the deploy. It is that the deploy and the release are the same event, so the only way to undo the second one is to redo the first.
Separate the two, so the code can be in production while the behaviour is off.
Components — tap one, then tap a slot on the diagram
?Deploying and releasing are two decisions. Tie them together and the only way to turn something off is to deploy again.
Outside every boundary: Users (see nothing yet), A finished branch (drifting from main; FAILED: cannot ship), Production (the code is here), an empty slot for the off without a redeploy Connections: A finished branch calls Production — deployed, and off (step 1) off without a redeploy controls Production (step 2) Production calls Users — released on a decision (step 3)
Userssee nothing yet
A finished branchdrifting from maincannot ship
Productionthe code is here