Separating deployment from release.
WHAT A TOGGLE IS
A setting controlling whether a feature is active.
WHY USE ONE
Deploy code without activating it Enable something for a subset of users Disable something quickly without deploying
WHAT THAT ENABLES
Releasing to a few users first Turning off a problematic feature in seconds
WHY THAT MATTERS
Turning something off is faster and safer than an emergency deployment.
WHAT TO TOGGLE
Significant new features Anything risky Anything you may need to disable
WHAT NOT TO TOGGLE
Everything.
WHY
Each toggle is a branch in behaviour, and combinations multiply.
WHAT TO DO ABOUT OLD TOGGLES
Remove them once a feature is permanent.
WHY
Otherwise they accumulate, and nobody knows what is safe to change.
WHAT TO RECORD
Each toggle, what it controls, and when it should be removed.
WHAT TO TEST
Both states, where both may occur.
WHAT TO BE CAREFUL WITH
Toggles affecting data, where switching back leaves inconsistency.