Decoupling Deployment from Release with Feature Flags

Imagine you’re a few weeks out from a new feature release when you find out it was accidentally pushed live to all your users in a testing mishap. Worse, there are still a few bugs you haven’t been able to work out, which your entire userbase is now subjected to.

That scenario is pretty much a developer’s worst nightmare. So how can you avoid it? By employing feature flags, which enables decoupling deployment from release.

When Facebook was beginning to launch its chat functionality, they needed a way to test out the new features to ensure they worked before deploying to their massive userbase. Instead of using a test environment, Facebook deployed their new chat feature to their application environment with one caveat: the users couldn’t see any changes! This allowed Facebook to test internally and monitor the capacity of its servers before putting users at risk. That was new when Facebook launched it, now Flagsmith helps any team easily employ the same practice!

How can feature flags decouple deployment from release?

Deployment involves pushing code to your infrastructure or runtime environment. Release has to do with exposing code to execution or making it available for users. By decoupling deployment from release, you can deploy updates regularly and release features to your users at any time. As a result, you can gradually release new features to your user base, instead of rolling them out all at once. Meanwhile, you’re able to reduce the size of changes made with each deployment by making smaller updates far quicker. Feature flagging enables decoupling by telling the program which features should be available to whom, and when they should be made available.

What are the benefits of decoupling deployment from release?

Enhanced Testing

Get Feedback Early & Often

Monitor Capacity & Resource Planning

From a business perspective, your sales and marketing team benefit from decoupling deployment as they are able to better time their efforts, ensuring your team is aligned across the board.

Easy Feature Rollbacks

This has an added benefit of allowing you to continuously progress in your code commits, rather than having to remove the code at issue. This way one issue doesn’t stop the whole development path, which can always move forward.

Launch Faster

Enabling Trunk-based Development

Developers can be comfortable committing code to the main trunk branch; their features are hidden behind flags. This is one of the main benefits of decoupling deploy and release.

Learn more about trunk-based development using feature flags.

What are the drawbacks of decoupling deployment from release?

What mistakes should new developers avoid making?

Don’t create too many spurious flags.

Clean up your flags as you go

Don’t start with low-risk parts of the codebase.

Avoid developing complex user groups.

How can Flagsmith improve feature releases?

Ship features with confidence. Flagsmith lets you manage features flags and remote config across web, mobile and server side applications.