Logs of Duty: Feature flags forever
Because every toggle deserves a second, third, and permanent chance.
Rule #1: Add a flag for every change. Even the most trivial ones. Toggling a button color? Needs a flag. Updating a typo? Needs a flag. This is about control. And control means flags.
Rule #2: Never delete flags. Once created, it is there forever. In three months, no one would remember what it does. Nobody will take the responsibility to remove it.
Rule #3: Use flags everywhere. Backend, frontend, mobile app, CI pipelines, Terraform. What else? Does it work with kids?
Rule #4: Don’t document them. Discovery is half the fun. Why tell people what a flag does when they can reverse-engineer it? Let’s keep our job entertaining while the AI takes over!
Rule #5: Name flags creatively. In my team, we love food, so we name them after our favorite dishes. For example, enable_sushi_roll_v2. But be aware that it may create some confusion for incident responders.
Rule #6: Chain flags together. To turn on a feature, ensure that we must toggle two, three, or even seven flags. Just to be sure nobody will enable it by mistake.
Rule #7: Work from anywhere. Need VPN to deploy to production? Not a problem with feature flags. Go out with friends and toggle the flags whenever you want. Even from a public Wi-Fi in the bathroom if you want!
Rule #8: Use flags as config management. Need to change a database endpoint? Just put it behind a feature flag! Config files are too often a source of incidents. And with flags, you can revert changes within seconds!
Rule #9: Play the guess game for team bonding. Enable the flag in prod, wait for support tickets to roll in, enjoy the suspense, and see how quickly the on-call team finds it.
Rule #10: Use flags to settle arguments. Can’t decide between two approaches? Release both, hide them behind flags, and never make a decision. Everyone’s happy.