Feature flags let us ship safely. They also pile up. When we counted, we had 140, and nobody could explain about a third of them.
Why old flags hurt
- Every flag doubles the paths through the code you are meant to test.
- Old flags get flipped by accident.
- New people cannot tell which branch is the real one.
What we changed
Every flag now has an owner and an expiry date when it is created. A weekly job lists the flags past their date in the team channel. Removing a flag is part of finishing the feature, not a separate task for later.
We are down to 31.
