Hacker News new | ask | show | jobs
by bluesign 2201 days ago
I am in favor of all automation and I totally agree that the tool is valuable. I am sorry if my comments seemed on other direction.

What I was trying to say was basically, without tooling also you can manage the debt from feature flags.

Answer to the RIDES_NEW_FEATURE question is about "you definitely don't want to block someone from fixing a crash because they have pending expired flags" mainly.

When I am disabling a flag, if I set isNewFeatureEnabled to False, basically, I am removing bloat instantly. Then when I have time to review the code I can also remove the dead code. Actually this is fixing the concerns in your blog post about "accidental activation" and "bloat" without waiting developers to fix the code. Piranha can set flag to stale value, then later can send the developer task to fix the dead code.

My flow is little bit more complicated then I replied actually, I have also assets etc related to feature flags. CI pipeline also removing non-used assets for that flag when it is stale. So basically I have more like: function isNewFeatureEnabled { return isFlagEnabled(flag) && getFlagValue("RIDES_NEW_FEATURE") }

What I am curious on this topic, do you have any kind of conflict detection for your feature flags?

1 comments

BTW, we also have a tech publication at https://github.com/uber/piranha/blob/master/report.pdf where we discuss some of the design tradeoffs pertaining to the stale flag cleanup problem.

Can you elaborate on what you mean by conflict detection? Are you trying to understand how flags are dependent on each other?

Thanks a lot, I will read it asap.

Basically sometimes I have some conflicting flags that can introduce bugs. Especially some rarely used flag and a new feature. Basic example, 2 different flags, setting same property to different values on an UI object.

Although more testing coverage probably can help, but I am curious, if you have some automation to detect those cases.

Interesting. We don't have tooling for this yet but extending the Piranha static analysis may help detect the issue.