Digitaleclub
Best for you!

5 ways to drive agile experimentation using feature flags

Cloud application architectures, microservices, CI/CD (continuous integration, continuous development) pipelines, test automation, and infrastructure as code are all technologies that enable agile development and devops teams to deliver code to production frequently. They have taken software development from the days of quarterly releases and complex integrations to a modern era of continuous development.

Developers have always been concerned about how to manage the codebase to support frequent releases, developer productivity, feature development, and code refactoring to address technical debt. Github enables different development and branching paradigms, including feature branches, release branches, trunk-based development, and Gitflow workflow. Branching strategies structure what code goes into builds and thus can be used to control which features get deployed to end-users.

Despite an ongoing discussion on branching approaches, there’s a strong consensus that development teams should avoid using long-running feature branches. Long-running feature branches often create complex code merges when the feature is ready to be integrated into the main branch.

What is feature flagging?

Branching controls code deployment and can regulate whether a feature gets deployed. But this is only a gross, binary control that can turn on and off the feature’s availability. Using only branching to control feature deployments limits a team’s ability to control when code gets deployed compared to when product leaders enable it for end-users.

There are times product owners and development teams should deploy features and control access to them at runtime. For example, it’s useful to experiment and test features with specific customer segments or with a fraction of the user base. Feature flagging is a capability and set of tools that enable developers to wrap features with control flags. Once developers deploy the feature’s code, the flags enable them to toggle, test, and gradually roll out the feature with tools to control whether and how it appears to end-users.

Feature flagging enables progressive delivery by turning on a feature slowly and in a controlled way. It also drives experimentation. Features can be tested with end-users to validate impact and experience. Jon Noronha, VP Product at Optimizely, says, “Development teams must move fast without breaking things. Progressive delivery helps isolate the breaks to small pieces and reduce the blast radius that can take entire applications down.”

Copyright © 2020 IDG Communications, Inc.

Leave A Reply

Your email address will not be published.