3 Ways to Use Feature Flag Management in DevOps 
Tags: devops, featureflags, agile, featuretoggles
Published: 2019-12-21 08:49:10

Theoretically speaking, DevOps is a methodology that aims to merge the operation of different technical teams during the systems development lifecycle. However, there are several practical methods that serve the DevOps philosophy. Feature flag management is one of the best tools you can implement to enhance collaboration and reduce development time. We'll discuss three ways how feature flags can be easily used in a DevOps-driven environment.  
 
<strong>1. Breaking Down Silos Between Business Units</strong>

When Agile practitioners came up with the idea of the DevOps culture, their main purpose was to eliminate the boundaries between development and IT operations in order to best serve business needs. Larger tech companies have realized that <strong>involving non-tech teams in the development lifecycle</strong> can highly boost productivity and shorten development time. With the help of feature flag management platforms,<strong> you don't need to be an avid coder to turn a new feature on or off.</strong> For instance, the marketing team of your company decides to have a Black Friday promotion on the company website. The campaign manager asks the dev team to put three banners on the website a week before the campaign begins and remove them when it ends. Also, on Black Friday, the price of certain products must appear with 70% discount and go back to full price the next day. The dev team changes the code accordingly, implements feature flags through a management platform and grants the campaign manager with full access to the requested feature flags. This way, the campaign manager gets full visibility over the requested features. Plus, if the marketing team changes the start date, the campaign manager can turn on or off the implemented features when necessary. With such a collaboration, developers can concentrate on building and give control of releases over to other teams.  
 
<strong>2. Deploy When You Want and Release When You Are Ready</strong> 

The pace of releasing new features has tremendously changed in the past few years. We all remember the days when software companies deployed feature releases on a monthly, quarterly or annual basis. With the arrival of DevOps mentality, however, the frequency of deploying updates and new features has reduced to weekly, daily or even hourly releases. Techniques like continuous integration (CI) and continuous delivery (CD) have started to sneak into the development pipeline <strong>enabling developers to constantly release their code.</strong> CI means that members of a dev team integrate their code to a shared repository as frequently as possible and then the code is verified by an integration system before it gets delivered. Obviously, when processes speed up, mistakes happen. And that’s when feature flag management comes in handy. If it turns out that the integrated code is buggy, <strong>the developer can simply apply a feature flag, disable the broken code chunk without touching the master branch and fix the bug later.</strong> Feature flagging can also be applied in the continuous delivery (CD) pipeline. CD is an extension of continuous integration in a sense that it ensures that you can release new features quickly and frequently in a sustainable way. <strong>If a change in the code is wrapped in a feature flag, you can easily turn it off if it cripples your application or website even after it got released.</strong>
 
<strong>3. The Dark Launch – Now You See It, Now You Don’t</strong>

In 2016, Facebook decided to introduce new reactions to posts and some new emojis were added to the Like Button. It’s always risky to modify something as popular as the Like Button so Facebook chose to release these new features to certain countries only to get some direct feedback before they roll them out globally. Based on the received feedbacks, the social networking company kept the new reactions and made them available to every Facebook user. This is a classic example of a dark launch, when only a certain percentage of users see the new feature and depending on their reactions, the feature is kept and gradually rolled out to everyone, modified or tossed away. The best way to <strong>coordinate and control such a release process is through a feature flag management platform.</strong> In the management platform, you can wrap the new chunk of code in a feature flag, toggle the flag on for a small number of users and keep it off for the rest. From DevOps point of view, dark launching enhances the continuous delivery process because <strong>you can add a feature flag to every new feature to separate its rollout from code deployment.</strong>
 
Wanna learn more about feature flags? Check out these two free feature flag services:

<strong>ConfigCat</strong> - https://configcat.com/

<strong>Unleash Hosted</strong> - https://www.unleash-hosted.com/