Feature Flags Book Playground, Videos, And Code
As a companion piece to my Feature Flags Book, I've created a feature flags playground to provide my readers with some lightweight hands-on experience. It's great to read about a concept in a book. But, some concepts don't become tangible until you can roll your sleeves up and get little bit dirty. This feature flags playground gives people an opportunity to define feature flags, add rules, target cohorts, and incrementally release new features to a demo user-base. The primary goal of this playground is to add dimension to the content of the book; but, if you want to see the underlying code, I've made it all available on GitHub—it's built in ColdFusion, Parcel.js, Alpine.js, and Less CSS and runs on Docker.
As the person who wrote the feature flags book and built the feature flags playground, the user interfaces seem very intuitive. But, I know that I 100% suffer from a knowledge bias. And that many people who log into the app for the first time will have no idea what to do. As such, I've created video commentary that attempts to add color to each of the primary interfaces within the app.
This video commentary is available within the app; but, I'm reproducing it here in an effort entice people to go check it out.
Features: Product Development Walk-Through
This page illustrates the way in which feature flags can be woven into a team's product development workflow. By separating the concept of deployment from the concept of release, it gives the engineering, product, and design teams a way to safely iterate on a feature in production. And then, gradually release the feature to an increasingly wider audience.
Features: List
This page provides a high-level overview of the current feature flags, including the relative distribution of each feature flag variant across the demo users and environments. Additionally, any feature flags that are serving the same variant in all environments are highlighted for removal.
Features: Create New Feature Flag
This page provides a way to create a new feature flag with a default selection resolution. Any additional targeting can be defined after the feature flag is created.
Features: Remove All Rules
This page provides a way to remove all of the rules from all of the feature flags; and resets each feature flag back to using its default selection resolution.
Features: Reset Demo Configuration
This page provides a way to reset all of their feature flags playground data. This, essentially, deletes and then re-creates your demo data.
Feature: Targeting
This page showcases the current configuration for the given feature flag across all environments. It also provides a high-level view into how the current configuration affects the variant allocation across the demo users.
Feature: Default Resolution
This page provides a way to change the default resolution for the given feature flag in the given environment. The default resolution determines how feature variants are allocated before any subsequent rules are evaluated.
Feature: Rules Enabled
This page provides a way to enable or disable the rules for the given feature flag in the given environment. When rules are disabled, only the default resolution will be used when allocating feature flag variants.
Feature: Rule
This page provides a way to configure a rule for the given feature flag in the given environment. The rule will only be evaluated during feature flag variant allocation if rules are enabled in the given environment.
Feature: Clear Rules
This page provides a way to remove all the rules from a given feature flag; and reset the feature back to using the default selection resolution.
Feature: Delete Rule
This page provides a way to delete the given rule from the given feature flag's evaluation pipeline.
Staging: Feature Matrix
This page provides a high-level overview of the feature flag variant allocation across all features, environments, and demo users.
Staging: User
This page provides a high-level overview of the feature flag variant allocation for the given demo users.
Staging: Variant Explanation
This page provides a detailed explanation as to why a given variant was ultimately selected for the given feature flag, environment, and demo user.
Demo Users
This page lists all of the demo users that can be targeted in the feature flags playground. In addition to the core set of demo users, the authenticated user is also given a team consisting of several users that all share the same email address domain.
I believe that feature flags are one of the most valuable tools in my developer toolbox. When I learned about them, it fundamentally changed the way that I approach product developer; and filled with a sense of confidence and security like nothing had previously. My goal with the book and with this playground is to pique your curiosity; and hopefully inspire you to start bring feature flags into your own product development teams.
If you made it this far in the post, you rock! Here's a coupon to get 25% off the book when purchased through GumRoad: DEMO25
.
Reader Comments
Just WOW! This is so in-depth and honestly, should have its own website, not just a blog entry. I wish more authors/developers/creators built sites like this to truly explain things. (Think Traefik, etc.)
Great job, Ben!
@Will, thank you for the very kind words 😊 This started out as something small, and then just kind of ballooned into a multi-month effort. I feel pretty good about how it came out, and I think some of the stuff that I added in the last month or so really rounded it out nicely (the product-development walk-through and the videos, especially).
Post A Comment — ❤️ I'd Love To Hear From You! ❤️
Post a Comment →