Feature Flags Overview
Harness Feature Flags (FF) is a feature management solution that lets you change your software's functionality without deploying new code. FF uses feature flags to hide code or behavior without having to ship new versions of the software. A feature flag is like a powerful if
statement.
if(HarnessFeatureFlag["newamazingfeature"] == true) {
renderNewAmazingFeature();
}
A feature flag is a decision point in your code that can change the behavior of your software. It decouples the deployment from release and helps to plan the following strategies:
- How a new change should roll out to the customers?
- How to release a feature?
- Who will be getting this feature first?
- Who will beta test the changes?
- Will there be a progressive rollout of the feature?
- Do I need to hit a particular date for an external event?
Visual Summary
The following video provides a general overview of how Harness Feature Flags work:
Blog Post
The following blog posts introduce you to Harness Feature Flags:
- Introducing Harness Feature Flags
- Feature Flags: What They Are & How To Use Them
- Implement Your First Feature Flag
Why Feature Flag is Important?
Feature flag management provides the following opportunities to the developers:
Ship Only When you're Ready
With the rise of continuous delivery, development teams ship new code to production all the time. However, this fast pace of shipping the code brings new kinds of risks.
Feature Flags provide the control to developers to ship the features only when they are ready. The teams can push new codes directly to users in minutes using the feature flags.
Test in Production
Having an opportunity to test with real, live users in the production environment can provide a much more accurate understanding of the system’s behavior. But the question is how to perform testing in the production environment without worrying about roll‐back or redeploy in case of any roadblocks.
The feature flag management platform comes with powerful targeting and custom rules to control access to new features. You can instantly turn off the access to any feature, bringing back the old behavior just by toggling the feature flag.
Percentage Deployments
In a percentage-based rollout, small numbers of users are selected to test the new feature. You can gradually increase or decrease that percentage over time. This method provides the opportunity to observe the behavior of the system under new changes. You can push the changes to all your userbases only when the changes are stable and user feedback is positive.
User Feedback
The ability to release changes to a limited set of users makes it much easier to gather feedback about the product. You can create a beta group of users and target feature flags specifically to that group. Testing new features with a subset of users allows developers to find and address the bugs before the major release.