Earlier quoted context omitted.
This is the only way, more or less, to enforce any code standards, whether its refactoring, quality, testing, docs etc. If it doesn't break the build (or do anything else that stops it from moving forward) there will always be external pressure to get things out "ASAP" despite in most circumstances "ASAP" isn't required. If you can't full on stop whats happening, it becomes exponentially harder to enforce anything.
I agree with you, entirely, but I've had developers fight tooth and nail when the build breaks. "We need to get out there ASAP!" is definitely the cry, and usually "compromises" are made, such as "what if we made the overall CI run not fail if this test fails?" — which is as good as killing the test, IMO. The impetus is necessary, or the problem is ignored. The devs are really just proxies for the stress a PM is inap…
Feature Flags: Theory vs. Reality
71–80 of 92 posts
Re: Feature Flags: Theory vs. Reality
#72I've definitely lived with the zombie flags problem. Teams ship experiments that double the size of a piece of code, but never go back to refactor out the unused code branches. In shared codebases this becomes a nightmare of thousands of lines of zombie code and unit tests. This is a social problem as much as a technical one: even if you have LaunchDarkly, DataDog etc making very clear that a flag isn't used, getting…
Re: Feature Flags: Theory vs. Reality
#73Removing them came down to team discipline.
Ideally, a Google like clang analysis of code would find flags ready for removal and alter code to remove the old code path. Recall Google used tools like this ro update or migrate deprecated api calls
Bbg however never got there. Instead you'd just get various alerts
Re: Feature Flags: Theory vs. Reality
#74At my work, I have a somewhat clever (or idiotic) technical solution to the problems of feature flags: they are actually implemented as feature modules that monkey-patch the base application in runtime. There are a few benefits: removing features is dead simple, just delete the whole feature module, and there's no conditional branching in the base application. There are some drawbacks too: the base application must h…
Re: Feature Flags: Theory vs. Reality
#75I've definitely lived with the zombie flags problem. Teams ship experiments that double the size of a piece of code, but never go back to refactor out the unused code branches. In shared codebases this becomes a nightmare of thousands of lines of zombie code and unit tests. This is a social problem as much as a technical one: even if you have LaunchDarkly, DataDog etc making very clear that a flag isn't used, getting…
Re: Feature Flags: Theory vs. Reality
#76Re: Feature Flags: Theory vs. Reality
#77Earlier quoted context omitted.
> getting a team to prioritise cleanup is difficult This is the limitation that breaks every development practice people come up with. That idea of formalizing the cleanup and requiring it for deployment is very interesting. It may be possible to extend it to other contexts.
It runs counter to the pressures a developer faces. I've at times been told that tech debt is fine because products only last 3-4 years before a replacement gets made. When you're on that timeline who cares if you've cleaned up after yourself?
Here am I, sipping on my coffee and catching up on HN while waiting for my 10+ year project to finish building.
Building what? A feature flag, of all things.
Re: Feature Flags: Theory vs. Reality
#78It seems like one of the biggest problems is prioritizing the cleanup of old flags. I know some companies have developed tools like Piranha[0] to automate this process and a few of our customers at grit.io have used it for that as well. Would love to hear if others have had success with automated flag cleanup.
Re: Feature Flags: Theory vs. Reality
#79I've definitely lived with the zombie flags problem. Teams ship experiments that double the size of a piece of code, but never go back to refactor out the unused code branches. In shared codebases this becomes a nightmare of thousands of lines of zombie code and unit tests. This is a social problem as much as a technical one: even if you have LaunchDarkly, DataDog etc making very clear that a flag isn't used, getting…
What prevents teams extending the expiry date repeatedly?
Re: Feature Flags: Theory vs. Reality
#80Earlier quoted context omitted.
At my job feature flags (and other configuration) get distributed as static files that replaced by config updates, so if there’s ever a disruption the hosts still have the last valid code configuration values
That works for simple on off flags that can wait for a deploy to change. Adding rules on top of that become complex