DevOps Feature Flags: What Are They and How to Use Them
DevOps feature flags bring continuous delivery to features. By using feature flags to manage your feature’s lifecycle in DevOps, your devs get to keep adding feature code to your live app without having to worry about how it might impact the rest of the app. Any feature code wrapped in feature flags stays decoupled from the rest of your app unless you set the flag to active.
In other words, with feature flags, you wrap your features into code that you can choose to enable or disable in the production environment. You can also select the user segments that will see your features when you’re ready to launch them, and roll back and kill a feature with a simple toggle. Feature flags also allow you to revoke access to features.
But the role of feature flags has evolved beyond simple feature management. Let’s first see how feature flags are traditionally used in DevOps before zooming in on how they've changed and why you should care.
Feature flags: a key staple in DevOps
Feature flags allow you to ship still-in-development features. Feature flags decouple your feature release cycle from deployment. Just define features, wrap them inside feature flags, set the value to "off," and keep developing and shipping code as you write it. Any finished or unfinished features that are turned off with feature flags don't execute, so your users never see them, and your production environment stays stable too. By allowing this, feature flags support DevOps’ core themes like continuous integration, continuous deployment, and delivery.
Feature flags let you release features progressively. Once a feature is ready to show to the QA team, set the feature to be available only to them. Ready for beta users? Ship progressively to your beta users. Good to go live? Launch it for everyone. In other words, you can orchestrate all kinds of canary releases, ring deployments, and dark launches with feature flags. By enabling progressive delivery, feature flags support continuous testing, monitoring, and feedback — all staples of DevOps.
Feature flags help manage risk. Feature flags help you ship better and faster, while minimizing risks. With feature flags, rolling back a problematic feature is as simple as toggling off a switch. If you couple this capability with user targeting — i.e., if you only turn on a feature that turns out to be problematic for just 10% of your users — you probably won’t cause much damage. And if a feature wasn't problematic, but didn't really perform well on business KPIs, a rollback is easy with feature flags.
Feature flags help maintain a feature release cadence in tandem with marketing and sales ops. With feature flags, you can have a feature that's ready to go live at the flick of a switch. This means features go live when you want them to. If a feature should go live in January, it goes live in January. This helps with planning growth campaigns too. So if you’re looking to launch a new subscription plan or something with X new features, you can have everything ready but turned off until then.
Feature flags help with customer entitlement management. The use of feature flags goes beyond just DevOps. Feature flags help with business ops as well. Customer entitlement, or enabling or revoking access to features for users based on their levels (subscription plans, for example), is another use case for feature flags. With feature flags, you can enable a certain feature for a specific user segment and deny it to others. Using feature flags, you can even boost your upsell and cross-sell revenue by empowering your sales and marketing teams to set up trials or trial extensions (using feature flags), allowing potential leads access so they convert better.
The evolving role of feature flags in DevOps
We’ve just reviewed the typical use cases of feature flags in DevOps. But feature flagging goes beyond progressive delivery — it also brings feature experimentation to the DevOps mix.
Feature experimentation — or testing features or their variations against KPIs set during their development hypotheses — is fast gaining traction with DevOps organizations. Feature experimentation can tell you if a feature should be built at all, how it could be implemented the best (even before it’s launched to everyone), and how to improve it.
The most disruptive product-led businesses are already practicing feature experimentation and have moved away from the typical feature development lifecycle where features are planned with use cases. More organizations now write hypotheses when planning and prioritizing features. They tie features to business KPIs, and features are released, improved, or killed based on their performance. In our Experimentation and Growth Survey this year, we interviewed 159 department leaders across the USA and the UK and learned that organizations investing in feature experimentation reported a 270% increase in growth.
Forrester predicted this in its 2021 research around feature management and experimentation, where 43% of the participants called feature experimentation "very important" to their software development initiatives. The research firm underlined how the idea of feature experimentation was growing "as hypothesis and experimental thinking spreads from pure market insights platforms over to a DevOps discipline."
By adding feature experimentation to your DevOps mix, feature flags don’t just help you build better products, but also help you save your dev bandwidth. Shagun Aulakh, an experimentation consultant currently serving as the Director of Product Management at American Express, stresses how feature experimentation actually helps optimize your DevOps bandwidth.
In one of its older papers on its experimentation initiatives, Microsoft shared how only three of every ten features it planned actually moved the intended metrics positively. More so, one-third didn’t make any difference at all, while the rest negatively impacted the target metrics. With feature experimentation capabilities, you can save a lot of work in such scenarios as you get to replace full-fledged feature releases with experimental features (delivered via high-quality prototypes that take much less DevOps bandwidth).
Feature experimentation might not be as mainstream as feature management (just yet), but this progressive shift from simple feature management toward feature experimentation is natural, given the need for continuous innovation.
Choosing a DevOps solution with feature flags
You just saw how feature management (including feature flagging and experimentation) sits at the heart of DevOps for product-led organizations. So naturally, you’d want a DevOps solution that comes with native feature flagging capabilities. Maybe you’ll find yourself looking for that one single "DevOps platform" that can, as Gartner puts it, be a "simpler alternative to DevOps toolchains," shipping with feature flagging capabilities, among other functionalities.
While such platforms are emerging and even seeing better adoption — about 25% of DevOps organizations use them as of 2023 — the truth is that most “end-to-end” DevOps platforms, like DevOps itself, are still evolving. The majority of these platforms didn't start out as DevOps solutions, which means you aren't looking at a real, complete DevOps solution yet. Most don't bring feature flagging capabilities natively, which means you’re going to need a solution like Kameleoon that can work with the rest of your DevOps tech stack and deliver best-in-class feature management, flagging, and experimentation.
Did you know about 90% of leading organizations use a single digital experimentation platform like Kameleoon throughout the organization, as doing so helps all the stakeholders experiment? Your product team can run product experiments. Your marketing teams can run web experiments. And your development and IT ops teams can run your DevOps experiments.
Request a demo to see how Kameleoon could help you run high-impact growth experiments across your entire organization.