What Are Feature Flags? A Product Manager's Overview

Written by peculiar | Published 2022/04/16
Tech Story Tags: product-management | product-development | feature-flags | feature-engineering | what-are-feature-flags | product-manager-overview | hackernoon-top-story | feature-flags-explained | web-monetization | hackernoon-es | hackernoon-hi | hackernoon-zh | hackernoon-vi | hackernoon-fr | hackernoon-pt | hackernoon-ja

TLDRFeature flags are a mechanism that allows the turning on and off of certain functionalities during runtime, without deploying code. Feature flags give product managers room to experiment with features and streamline what audience has access to what feature is needed. Using feature flags for testing in production can be mitigated, as code can be deployed behind it, hidden from customers, then deployed in canary releases. via the TL;DR App

Product managers constantly lookout for ways to add more value to a product and deliver new product experiences to customers. This continuous delivery or continuous deployment, if you will, entails the ability to push product updates to customers, with the expectation that the new functionality works fine. Else, it is sent back to development for a fix.

Feature flags give product managers room to experiment with features. It allows the gradual rollout and enables them to streamline what audience has access to what feature.

In this article, I will walk you through a general concept of what feature flags are and why both engineers and product managers find them valuable.

What are feature flags?

As frequently defined, a feature flag often referred to as a feature toggle, is a mechanism that allows the turning on and off of certain functionalities during runtime, without deploying code.

For example, at Meta [formerly Facebook], feature flags play a big role. Have you noticed how when Meta announces new features, they roll out tests to a small percentage of people, then expand gradually to more people globally? This audience segmentation allows the company validate with a subset of users first, as it would be very risky to launch experimental features to their 3.6billion monthly active users.

Common use cases of feature flags

Feature flags allow teams to deploy a new feature to production whenever possible. Let's explore some use cases:

Testing in production with feature flags

This is about testing your features in the environment where your features will live in. To some QA engineers and product managers, myself included, testing in production (TiP) can be intimidating. It is like walking on eggshells. For obvious reasons, TiP can create leaks that expose vulnerabilities to real users or destabilize their experience.

With feature flags possible risks with testing in production can be mitigated, as code can be deployed behind it, hidden from customers, then deployed in canary releases. This gives the engineering and product teams granular control on launching new features with less risk.

Actually, it makes sense to not only want to know that your features work in staging, but that it does in production too, hence testing in production. Feature management helps you deliver your feature and product experience safely.

Managing entitlements with feature flags

Software as a Service (SaaS) typically offers different subscription plans to customers. Free plans have basic features, while paid plans have varying top-notch sets of features that constitute the plans.

Using feature flags for pricing to stipulate what plan gets what features, helps the process of managing these entitlements.

Using feature flags for Experimentation

This involves launching different versions of the same feature to see which one performs best. You implement techniques like A/B testing and segmentation against deployed features [A/B testing in production].

Feature experimentation allows you to compare features to get insight on which has the best implementation or is preferred. Also, you can write a hypothesis for a feature, set up an experiment to launch it, measure its performance, and then launch it post validation. Feature flags help to build the changes one wants to test. Then tying a metric to the feature flag, gives the experiment a purpose.

In Conclusion

The whole idea of feature flags is to mitigate risk by providing a quick way to turn features on or off even after deploying your code. It is highly recommended to use feature flags with caution. Keep them short-lived in small numbers to avoid complexity.

Review flags often to ensure that the important ones are on or off accordingly, as misusing them could have bad consequences, as seen in this real-life example: a company with nearly $400 million in assets went bankrupt in 45-minutes because of a failed deployment. The team re-purposed a feature flag used by old code to try to contain an operational risk.

Now that you've covered the concepts and considerations of feature flags, it is worthy of note that there are many feature flagging platforms that help to automate feature flag management: split.io, LaunchDarkly, CloudBees, etc.

Know a non-technical person who is trying to get into the product management space? You may want to share my previous article on the topic Explore Must-Know Technical Concepts for Product Managers: Your Guide to the Mind of a Dev with them. Thanks for sharing!

Feel free to connect with me on LinkedIn.


Written by peculiar | Product manager |UX Designer | Freelance writer
Published by HackerNoon on 2022/04/16