Not to be confused with the Ruby on Rails SaaS template Bullet Train: https://bullettrain.co/
Bullet Train: Open-source feature flagging
31–37 of 37 posts
Re: Bullet Train: Open-source feature flagging
#32I couldn't work out what this does. A library for mapping booleans to and from strings?
Is a service for feature flags, where feature flags are a software pattern in a way. If you want to learn more about it, have a look into this: https://martinfowler.com/articles/feature-toggles.html In a nutshell, it allows developers to deploy new features but hide them based on a flag. Once it is ready to be released (example: product gave an ok, big announcement happened etc), then this feature just needs to be en…
But they only seem to work if the interface doesn't change. From the example you gave:
function reticulateSplines(){
if( featureIsEnabled("use-new-SR-algorithm") ){
return enhancedSplineReticulation();
}else{
return oldFashionedSplineReticulation();
}
}
All well and good as long as the enhancedSplineReticulation returns the exact same structure that the old one did. If it doesn't, then a bunch of code that handles the new reticulated splines also needs to be behind a flag (because the structure changed). And that could mean a chunk of UI needs to be duplicated behind a flag because it changed, and so on.How do you use feature flags when the features aren't just trivial changes to methodology, but affect multiple parts of the system?
Re: Bullet Train: Open-source feature flagging
#33I couldn't work out what this does. A library for mapping booleans to and from strings?
a good feature flag service should also allow you to do % rollout to try to de-risk the release of a new feature, some times even auto-closing the feature if some specific metric passes a certain threshold (e.g. dau dropped 10%, number of errors increased x%, etc)
Re: Bullet Train: Open-source feature flagging
#34Earlier quoted context omitted.
Is a service for feature flags, where feature flags are a software pattern in a way. If you want to learn more about it, have a look into this: https://martinfowler.com/articles/feature-toggles.html In a nutshell, it allows developers to deploy new features but hide them based on a flag. Once it is ready to be released (example: product gave an ok, big announcement happened etc), then this feature just needs to be en…
I'm always curious about Feature Flags - I'd love to use them. But they only seem to work if the interface doesn't change. From the example you gave: function reticulateSplines(){ if( featureIsEnabled("use-new-SR-algorithm") ){ return enhancedSplineReticulation(); }else{ return oldFashionedSplineReticulation(); } } All well and good as long as the enhancedSplineReticulation returns the exact same structure that the o…
Re: Bullet Train: Open-source feature flagging
#35from my perspective the most important thing would be privacy and ideally no sdk, but I acknowledge that I might be bias...
Re: Bullet Train: Open-source feature flagging
#36Earlier quoted context omitted.
I'm always curious about Feature Flags - I'd love to use them. But they only seem to work if the interface doesn't change. From the example you gave: function reticulateSplines(){ if( featureIsEnabled("use-new-SR-algorithm") ){ return enhancedSplineReticulation(); }else{ return oldFashionedSplineReticulation(); } } All well and good as long as the enhancedSplineReticulation returns the exact same structure that the o…
Check the flags in multiple parts of the system, or duplicate some logic and have two completely self-contained components, one with the new pieces and one untouched.
But how do you deal with multiple feature flags implemented on the same piece of the system?
How do you create discrete components when you have three or more features intersecting on that component?
And presumably there's a proliferation of test cases, too (because you'd need to test that everything works with all combinations of features A,B,C,D implemented)?
How much of this gets cleaned up afterwards? When the feature is fully rolled out, how do you resist the pressure to move on to another feature and leave the flags implemented rather than clean it all up and remove the old code?
Re: Bullet Train: Open-source feature flagging
#37If you are interested in this space and don't want to purchase a commercial product, check out Flagr [0] which you can deploy and run yourself. It has clients for Go, Python, Ruby and JavaScript. I have only used the basic flagging, but it also supports A/B testing as well. No affiliation, just a happy customer. 0 - https://checkr.github.io/flagr
[0] - https://github.com/checkr/flagr/issues/139#issuecomment-4028...