3 ms·
flag = true More seriously, at my old company they just never got removed. So it wasn’t really about control. You just forgot about the ones that didn’t matter
by sillysaurusx 5y ago
flag = true
More seriously, at my old company they just never got removed. So it wasn’t really about control. You just forgot about the ones that didn’t matter after awhile.
If that sounds horrible, that’s probably the correct reaction. But it’s also common.
Namespacing helps too. It’s easier to forget a bunch of flags when they all start with foofeature-.
- withinboredom 5y agoI’ve seen those old flags come in handy once. Someone accidentally deleted a production database (typo) and we needed to stop all writes to restore from a backup. For most of it, it was just turning off the original feature flag, even though the feature was several years old.
- skybrian 5y agoIt can become a code maintenance issue, though, when you revisit the code. You need to maintain both paths when you never know if they are being used. Also, where flags interact, you can get a combinatorial explosion of cases to consider.
- mdoms 5y agoAt a previous workplace we managed flags with Launch Darkly. We asked developers not to create flags in LD directly but used Jira web hooks to generate flags from any Jira issues of type Feature Flag. This issue type had a workflow that ensured you couldn't close off an epic without having rolled out and then removed every feature flag. Flags should not significantly outlast their 100% rollout.
- harunurhan 5y ago> the ones that didn’t matter after awhile. Ideally you have metrics for all flags and their values, so you can easily tell if one becomes redundant and safe to remove entirely after a while. I've also seen making it a requirement to remove a flag after N days, the feature is completely rolled out.