💾 Archived View for dioskouroi.xyz › thread › 24916547 captured on 2020-10-31 at 00:52:41. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
________________________________________________________________________________
Not to be confused with the Ruby on Rails SaaS template Bullet Train:
Thank you, thought it was about that one and was going to say it's really good, has a great community and amazing support, would definitely recommend for anyone who has experience with rails and wants to start a new project but not completely from scratch - definitely worth the money ($1.5k IIRC).
Yeah, I feel like the name doesn't really fit for feature flags as a service either.
When I read the headline this is the product I was thinking of.
Almost exact same domain name even. Yikes.
Thanks, I found this template yesterday and almost getting a wow because I see it on HN today.
Brand confusion... yay.
If 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
I 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 enabled through this flag. Now, this flag can be an environment variable, but for apps you will probably need a service, which the app always fetch the latest feature configs.
We use it here (although using Flaggio
https://github.com/victorkt/flaggio
) and it is super useful for continuous delivery. And you can as well control features based on groups (example: show just for beta users) or hide features if some bug was discovered.
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 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?
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.
Yeah, I suppose so.
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?
Hi - we're a feature flagging platform. You can put new features that you are working on behind boolean flags and then manage those features from our dashboard.
Still unclear! "Feature" means a software feature? For example _"I've implemented the feature of sorting customer records by date of birth"_? I don't really understand why anyone would need a service to manage software features, so maybe feature means something else.
We have an overview of why you might like to use a feature flagging platform here:
https://docs.bullet-train.io/overview
Hopefully that helps!
This sounds like it could easily and quickly lead to really poor bug reproducibility, documentation, and discovery especially if the issue is in action-at-a-distance anti-patterns. Am I just being a curmudgeon or is this a reality?
I'll happily accept a "no you're crazy".
For smaller projects and teams, something like feature flagging can probably be avoided unless A/B testing is required.
For a company that has hundreds of engineers, with daily continuous deployment, it helps to have certain in-development features gated behind flags. When it comes time to deploy these new features, they can gradually be rolled out to users. If the feature starts triggering exceptions, it's very easy to scale back.
Once the beta feature becomes stable, often the feature is removed (along with all logic in the source code guarding this feature).
Similarly, for A/B testing, the feature flagging and logic is removed once a test is deemed to have either passed or failed the A/B experiment.
Like anything else in software, feature flagging can incur technical debt if not properly maintained.
This is used extensively. X customer wants to test y feature, but z customer is the middle of a large test and refuses to see c feature.
Roll out feature to test client, slowly roll out feature to each client.
Something to wrong? It’s incredibly fast to update the flags.
Feature flags are used for gradual rollout and testing of features. Including, but not limited by, A/B tests, region-locking features, rolling to features to internal users only and so on.
For example, you're developing a new version of the checkout page for your company from scratch (it can be a store selling physical goods, or a subscription service, or anything that requires payment). It means that for a while it will not have feature parity with your existing checkout page.
So first you implement feature parity with, say, German payment options (credit cards and Sofort). Then you set up a feature flag saying "for 5% of German customers display the new checkout", and monitor it. Then you bump it up to 10%, then to 50%.
Meanwhile you're working on accepting payments via Swish in the new checkout in Sweden. Once it's ready, you add a feature flag saying "for 5% Swedish customers display the new checkout" (and in parallel, you're probably already displaying the new checkout to 50% German customers).
And so on.
In their core feature flags are not really more than a glorified if statement, but:
- you want to view them, and handle them in a single place so that you can adjust the various parameters or quickly shut down a feature if it misbehaves
- this single place has to be scalable enough that it survives an influx of customers potentially triggering dozens of feature flags across your software
feature flagging allows you to separate code deployment from feature releases. It’s a change in dev methodology/mentally and usually goes hand-in-hand with “trunk-based development” (trunk/master is always stable and you should avoid long lived branches).
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)
I wish there were more examples how to use feature flags. How would you test a feature flag e.g. Halloween discount. As this probably involves both front-end and back-end code. The only way I can think off how this can be tested is by making a special new user with this feature flag.
But do you now need to test all possible permutations of the flags combinations? If so, how to determine these permutations? Can imagine you test all possibilities every time??
I have an example from a different area. We are developing a batch process that runs multiple stages over multiple hours on a huge cluster producing some kind of numerical results. We also can not deploy to production on a whim, due to regulation. It is impossible to test all developer changes on a full process.
So we put highest risk changes under feature flags/configuration values. If certain things do not work as expected in testing - we disable them with configuration without creating a new build artifact. It is also a common occurrence that another team has to validate numerical results Coming from a certain feature for a while before it is enabled in production.
Had to upvote, been using it for around 6 months, I couldn't imagine starting a project without it now.
Why would I use this instead of the feature flagging capabilities provided by Azure for example?
Hi - thanks for the question! I'm one of the founders.
There are a few options for people when it comes to feature flags. Some options, like Azure, are features of larger platforms, others come at feature flagging from more of an A/B testing angle.
In terms of Bullet Train:
- We focus on feature flags. We're not going to build out features that are not core to that offering. We're not going to build an analytics platform for running AB tests as we think using a dedicated analytics solution makes a lot more sense.
- Our flags can be booleans, strings, ints or floats and can be overridden on a per environment basis.
- We offer flags based on dynamic user segments, percentage splits/rollouts and are about to release multivariate flags with ABN testing capability.
- We have lightweight, low dependency SDKs for the majority of languages and frameworks that don't get in your way.
- You can run our platform yourself, with us, or we can help you run it on-premise. Our architecture is straightforward and can be up and running in a couple of minutes via docker-compose.
- All our dashboard and API code, as well as our SDKs, is open source and BSD-3 licensed.
At the end of the day it depends on what you are looking for, and what tooling you are currently using.
I’m curious, what everyone wants to see in a feature flagging service? privacy? (gdpr, caap) %rollout? flexibility on rules?
from my perspective the most important thing would be privacy and ideally no sdk, but I acknowledge that I might be bias...
http://www.webdesigntools.us/category/web-design
http://www.webdesignsskills.us/category/blogging
http://www.webdesignskills.us/category/software
http://www.webdesignsskills.us/category/blogging
http://www.webdesignlab.us/category/databases
http://www.webdesigncourses.us/category/ppc-advertising
http://www.viewrealestate.us/category/property-tax
http://www.vehicleenginerring.net/category/luxury-cars
http://www.valleyhome.us/category/appliances
https://www.vacationsplan.us/category/budget-travel
http://www.upperhome.us/category/fencing
http://www.uniquefashion.us/category/indian-fashion
http://www.typesofservice.com/category/coaching
http://www.typesoflaw.org/category/traffic-law
http://www.tripandtouradvice.net/category/camping
http://www.travelvacations.us/category/travel
https://www.travelup.us/category/luxury-cruising
http://www.traveltourism.us/category/ski-resorts
http://www.travelspecial.us/category/adventure-travel
http://www.travelroutes.org/category/vacation-rentals
http://travelroutes.ca/category/boating
https://www.travelpolicies.info/category/luxury-cruising
http://www.travelmark.us/category/hotel-booking
http://www.travelmaps.us/category/budget-travel
http://www.travellingservices.info/category/travel-tips
http://www.travellingpolicy.com/category/vacations
http://www.travellingpolicies.com/category/camping
http://www.travellingpoints.us/category/travel-and-leisure
http://www.travellingedges.com/category/hotel-accommodation
http://www.travellingchoice.org/category/adventure-travel
http://www.travelleisuretips.com/category/budget-travel
http://www.travellabel.net/category/travel-tips
http://www.travelingsafety.org/category/hotel-booking
http://www.travelingsafety.org/category/ski-resorts
http://www.travelingguide.co/category/travel
http://www.travelhabits.org/category/outdoors
http://www.travelguides.us/category/travel
http://www.travelcruise.us/category/adventure-travel
http://www.travelcircle.us/category/budget-travel
http://www.travelbenefits.ca/luxury-cruising/blue-lagoon-tou...
http://www.travelarchives.us/travel-and-leisure/5-should-do-...
http://www.travelandtours.us/adventure-travel/know-sydney-li...
http://www.travelandtour.ca/adventure-travel/some-of-the-bes...
http://www.traveladvice.us/hotels-and-lodging/duffel-bag-a-b...
http://www.toursandtravelideas.com/budget-travel/money-savin...
http://www.topsportsnews.us/cycling/describing-the-sorts-opt...
http://www.toprealestatepoints.com/category/land
http://www.topnewsalert.us/category/crime
https://www.topeducations.us/category/kids-education
http://www.topbusinessanalysis.com/category/business-ideas
http://www.todaysbusinessdemand.com/category/e-business
http://www.tipsforhome.org/category/appliances
http://www.thelawandpractice.com/category/attorney
https://www.thefashionstyles.us/category/men-fashion
http://www.termofservices.com/category/coaching
http://www.technologyyouneed.net/category/hardware
http://www.technologyvision.us/category/gadgets
http://www.technologystory.org/category/databases
http://www.technologysolution.us/category/data-recovery
http://www.technologysection.org/category/gaming
http://www.technologyresearch.ca/category/gadgets
http://www.technologypolicy.us/category/graphic-design
http://www.technologypolicy.net/category/networks
http://www.technologyplant.us/category/malware
http://www.technologynetwork.us/category/tech-updates
http://www.technologymagazine.us/category/gadgets-and-gizmos
http://www.technologyimpact.us/data-recovery/money-transfer-...
http://www.technologygrowth.us/category/artificial-intellige...
http://www.technologygadgets.us/category/support-services
http://www.technologygadget.us/category/graphic-design
http://www.technologyflow.us/category/gadgets
http://www.technologydiscover.us/general/hero-ignitor-vs-baj...
http://www.technologycores.org/category/hardware
http://www.technologycodes.us/category/malware
http://www.technologychanging.com/support-services/bandwidth...
http://www.technologycenter.co/security/the-perks-of-gps-tra...
http://www.technologiesclusters.com/category/web-hosting
http://www.technologiescenter.net/category/tech-updates
http://www.technetworks.ca/artificial-intelligence/the-advan...
http://www.techifluence.net/category/software
http://www.techinfluence.net/computers-and-technology/the-fu...
http://www.techanalysis.ca/category/networks
http://www.techalerts.us/category/general
http://www.techadvantages.us/technology/enforcing-standard-o...
http://www.surfshopping.net/category/jewelry
``
http://www.superhometrend.com/category/house-plans
http://www.stylishhomeimprovement.net/category/gardening
http://www.stylishhome.us/category/gardening
http://www.sportsupdate.us/category/baseball
http://www.sportsunion.us/category/boating
http://www.sportstimemagazine.com/category/football
http://www.sportspro.us/category/swimming
http://www.sportsninja.net/category/cycling
http://www.sportsgamings.us/category/horse-racing
https://www.sportsfusion.us/category/sports-news
http://www.sportsevents.us/category/fishing
http://www.sportsclubsfitness.com/category/bodybuilding
http://www.sportsatlanta.org/category/badminton
http://www.societyofautomotive.com/category/trucks
http://www.smartpet.us/category/dog
http://www.smartparentingadvices.com/category/parenting
http://www.smarthomevalley.us/category/roofing
http://www.smarthomevalley.us/category
http://www.smartfinancechoice.com/category/debt-consolidatio...
http://www.smartautomotive.org/category
http://www.smartautomotive.org/category/repairs
http://www.homedecorstyle.org/category/kitchen
http://www.smalltripadvisor.com/category/travel
http://www.smallbusinessanalysis.us/category/branding
http://www.simplelaw.us/category/cyber-law
http://www.shoppingtrend.us/category/clothing
http://www.shoppingstyle.us/category/cloth-shopping
http://www.shoppingspecialty.org/category/gifts
http://www.shoppingspecialty.com/category/shopping-experienc...
http://www.shoppingsections.com/category/cosmetics
http://www.shoppingsavings.us/category/toys
http://www.shoppingsales.us/category/shopping
http://www.shoppingproducts.org/category/shopping
http://www.shoppingproduct.us/category/general
http://www.shoppingplan.us/category/shoes-and-footwear
http://www.shoppingplan.info/category/shopping
http://www.shoppingpackers.com/category/shopping
http://www.shoppingoffer.us/category/shopping
http://www.shoppingideas.us/category/online-shopping
http://www.shoppinghabit.us/category/cloth-shopping
http://www.shoppingexperience.us/category/clothing
http://www.shoppingdeal.us/category/appliances
http://www.shoppingdeal.info/category/electronics
http://www.shoppingbrand.us/category/shopping
http://www.shoppingbox.org/category/electronics
http://www.shoppinganywhere.org/category/shopping-cards
http://www.shoppingandstyles.com/category/shopping
http://www.shoppingandstyle.net/category/shopping-experience
http://www.servicesprovider.us/category/counseling-services
http://www.servicespolicy.org/category/general
http://www.servicesplan.us/category/medical-services
http://www.serviceslevel.us/category/emergency-services
http://www.servicesforautomotive.com/category/cars
http://www.servicesfacts.net/category/professional-services
http://www.servicesfactor.us/category/storage-services
http://www.servicesdrive4u.com/category/coaching
http://www.servicescircle.us/category/online-services
http://www.servicesbusinessplans.com/category/career-advice
http://www.servicesalerts.us/category/storage-services
http://www.serviceproviders.us/category/support-and-services
http://www.serviceexperienced.com/category/professional-serv...
http://www.seoservicesland.net/category/software
http://www.seomagazine.us/category/seo
http://www.selfshopping.us/category/shopping
The benefits of new technologies are always welcomed with open arms, and VoIP is no exception. This internet-based method of conducting phone calls has a wide range of benefits in terms of quality and reliability whilst also offering.
https://www.business401k.us/category/business-ideas
When you are building your custom home, there are so many different features and options to consider that it can simply get overwhelming. Whether you are thinking about expanding your kitchen, creating a his and hers master closet.
http://www.yourhomestyles.net/category/home-improvement
<a title="Home Improvement" href="
http://www.yourhomestyles.net/category/home-improvement">Hom...
Improvement</a>
[url=
http://www.yourhomestyles.net/category/home-improvement]Home
Improvement[/url]
One of the best pastimes of summer vacation is spending time on the water with your family. Be it on a lake, the ocean, or even a local river, water-based …
http://www.worldtraveltour.us/category/adventure-travel
http://www.wellhealth.us/category/women-health
http://www.weddingtrend.us/category/weddinghttp://www.weddin...
The example showing "high_spenders" and conditions like "money_spent >= 100", feels unsettling, and reeks of user-tracking and discrimination.
Can we please stop these patterns?
This seems like a really odd take. Why would any business not want to identify high value customers?
Ah, but you're looking from the perspective of the business, not the customer.