Skip to main content

Gradual Feature Rollouts with Feature Flags

· 4 min read
Vlad Spatariu

Software development is a really challenging endeavor. A lot of time and energy has to go into making sure that customers like what you're building for them.

Many people make the mistake of thinking that product development mainly consists of coding. Developing a product (ideally) needs specialists, managers, tactics, and various tools. A good idea can indeed go a long way, but if you want to give your product the highest possible chance to penetrate the market, then you need to allocate all possible resources that you have available to throw at it.

cat rolling out new features cover image

This implies that you should work smarter, not harder. Slow traditional deployments often cost more and take up a ridiculous amount of time. Thankfully, integrating Feature Flags into your deployment strategy can speed up this process.

What are Feature Flags

Feature flags let you launch new features and change your software configuration without (re)deploying code. They can best be described as conditional statements that you can control remotely, thus eliminating the need to deploy code for every little thing. Imagine them as tiny, helpful light switches that you can tie into parts of your code. This makes deployment lighter and a less risky process.

From brainstorming to active development

Feature Flags are often wrapped around specific features that should either be developed or tested. The feature itself needs to be implemented just as you'd expect, meaning it gets brainstormed and people squeeze their brains and databases for ideas/data before any actual implementation (or testing) of new code takes place.

By this point, it's important to be familiarized with feature flags, but in case you're not, check out this link. The short version is that Feature Flags can really help out through the testing and deployment processes of fresh code. Without feature flags of any kind, testing and implementation becomes a more complicated process.

Using Feature Flagging services like ConfigCat (which is a cloud-based service that lets you release features without code deployments), you can easily create segments/tenants for specific groups, including for internal teams that play an active role in the development process.

How User Targeting Helps

Both small and big code iterations should always be tested. Feature Flags facilitate this process greatly.

Code Iterations

ConfigCat's intuitive interface allows you to use feature flags to target users based on certain identifying attributes like beta testers, age group, or any other data collected from the users. This targeting strategy works well when we only want to expose a very specific part of the user base to new features or code that may not yet be primed for a general release.

Giving access to more and more users

If users resonate with the changes, the release range can then be slowly widened until a general release is reached.

In ConfigCat, you have a straightforward UI to manage your Feature Flags:

Feature Flag UI

You can even target the pool by using the same attributes with different values:

feature flag else if

Practices like these are often used by developer teams in Big Tech. They usually test a new feature exclusively in one country and then decide whether to either propagate the feature globally or eliminate it from the code altogether.

feature flags with conditions on or off

The Percentage Rollout

Gradual Rollouts image

If you don't need to target users based on identifiable attributes and would rather prefer a general testing pool, then you can target users by percentage. ConfigCat allows you to do this in a fairly straightforward way:

percentage rollout image

Releasing to All Users

If all is fine and well and your users react positively to your new code, then it's time to make it widely available by changing the targeting rules to include everyone.

Note: Remember to keep your code clean. Once you're done with a feature flag, be wise and remove it from both your codebase and from your dashboard. Technical Debt accumulates faster than you think!

Wrapping up

At the end of the day, ConfigCat can help you make your development process safe. It can work for you, but not instead of you. Just like how using a hammer proved to be better than smashing two rocks together, so do Feature Flag Management Services help us make our lives easier.

If this peaked your curiosity, visit ConfigCat's Facebook, Twitter, LinkedIn and GitHub for more details.