Feature flags have been instrumental in progressing the DevOps philosophy, and ensure that development teams are able to achieve continuous delivery of new, high-quality features. At the same time, operations teams provide feedback to be used in future development cycles and are given access to development tools such as feature flags to manage and troubleshoot individual features in the live environment.
DevOps is a software development philosophy that combines the Agile development approach focusing on rapid delivery with a collaborative effort between the development and operations staff. This collaboration is key to creating a more efficient and adaptive product lifecycle, and formalizes the increased role that operations teams play in the service-focused landscape of today.
Experimentation and feature release
One of the most important benefits of using feature flags in DevOps is that it separates the process of code deployment from the rollout of features to end users. Once the new code is deployed, the tools in your experimentation platform allow the combined DevOps team to plan a unified schedule of exactly when, where, and to whom each individual feature should be made available.
Why feature flags?
The ability to selectively enable or disable features makes feature flags in DevOps an ideal tool for use in feature experimentation. By enabling different test versions of new features for different focus groups of users, A/B testing can be performed so operations staff can gauge how new features perform in a production environment and provide both technical and usability feedback to the developers.
How to use feature flags in DevOps
The feature flag framework provides DevOps teams with several flexible methods of managing features. A few of the common uses of feature flags in DevOps are allowing control of features from a centralized management console, the ability to change feature sets without downtime, and managing features on a per user, per group, or per device basis.
Deploying code in continuous delivery
One of the goals of DevOps is to provide constant value to users while eliminating the need for system downtime. By using feature flags in DevOps environments, you can deploy code to the production environment without any interruption in service, allowing you to perform A/B testing, bug fixes, and live rollouts at any time. This is to measure the results for reference in future development cycles.
As DevOps continues to be embraced on a wider scale, feature flags in DevOps will provide a key reason for companies to transition from a traditional, “waterfall” approach to a modern approach based on continuous delivery. Split’s full-stack product experimentation platform includes feature flags and many other features that will help your organization make the transition to DevOps, and increase the speed and adaptability of your software releases.