THANK YOU FOR SUBSCRIBING

Feature Flags the Hidden Gem to Agility
By Srinivasan Nanduri, Architect, Mobile Development, IBM Cloud


Srinivasan Nanduri, Architect, Mobile Development, IBM Cloud
Enhanced Continuous Delivery
Continuous delivery is a software development practice in which software can be released to production at any time. It has been adopted by leading software companies to deliver stable software quickly and more frequently. Feature flags enhances continuous delivery by making it more easily achievable. Adopting feature-flag driven development, Dev and Ops teams can deploy new functionality continuously while keeping the functionality hidden until product managersdecide when to make the feature available to their end users. This technique allows the feature development to be completely decoupled from the feature roll out which makes Feature flags an integral part of the deployment process.
Minimise Blast Radius of Newly Released Features
Businesses today have unprecedented data and visibility into their user's behaviour. Using Feature control, developers can choose by turning certain features on for certain users based on their behaviour, while leaving it off for the rest. This helps in minimising the blast radius of new feature releases while validating its functionality and testing it for performance prior to its broader rollout. Popular use case includes launching the feature to a sub-set of users based on their usage patterns to share their experiences and provide feedback for further enhancements.
Tailor User's Experience
Feature flags allows app developers to deliver customized experience to its users. By toggling the feature, users from a certain geography will experience the app in a different way versus a user from another geography who will experience the same app with a completely different user interface.
Gradual Rollout/Canary Release
When deploying a new feature, releasing it to all the user base is always risky. With gradual roll out the feature is released to a subset of users, after receivingtheir feedback and making improvements the target user base is gradually expanded. If something goes wrong, the developer can instantly roll it back. This allows the developerto test the effectiveness of a feature before releasing it to all users.
A/B Testing
Feature flags allow A/B testing of various features. This enables comparing different versions of a feature while measuring their individual performance, analyzing and drawing conclusions about which version performs better. Using Feature flags, a developer can define two or more variations of a feature flag that are targeting different sets of users and determine which variation performs the best based on the analysis of how each variant has performed.
Time to Live
Many a times, a developer would like to release a feature for a fixed interval of time and pull it back later. Feature flags also allow developers to keep a feature ‘active’ for a defined period. Once expired, the feature which is controlled by feature flag will be hidden from end users.
Before we conclude, a couple of call outs:
• Developers should watch out for the number of feature flags used in an application. The intent is to facilitate agility without increasing complexity.
• A feature flag added to the code is a technical debt from the moment it’s added. Every feature toggle adds a new code path through the application which makes it harder to test and debug the code. Hence, it’s important to remove the toggle from the code after its use or expiry.
• Do not add feature flags for completely easy or tested functionality. You can release such functionality without protecting it with a feature flag.
• Do not use feature flags for API end points that are not public facing.
To summarize, with feature flag management, a team can launch, control, and measure features at scale. It’s very easy for companies to adopt Feature Flagging in their projects with several feature management solutions available in the market. There are many platforms available in the market to manage your feature flags at scale such as LaunchDarkly, IBM Cloud AppLaunch, and Optimizely.
Feature flags allows app developers to deliver customized experience to its users. By toggling the feature, users from a certain geography will experience the app in a different way versus a user from another geography who will experience the same app with a completely different user interface.
Gradual Rollout/Canary Release
When deploying a new feature, releasing it to all the user base is always risky. With gradual roll out the feature is released to a subset of users, after receivingtheir feedback and making improvements the target user base is gradually expanded. If something goes wrong, the developer can instantly roll it back. This allows the developerto test the effectiveness of a feature before releasing it to all users.
A/B Testing
Feature flags allow A/B testing of various features. This enables comparing different versions of a feature while measuring their individual performance, analyzing and drawing conclusions about which version performs better. Using Feature flags, a developer can define two or more variations of a feature flag that are targeting different sets of users and determine which variation performs the best based on the analysis of how each variant has performed.
Time to Live
Many a times, a developer would like to release a feature for a fixed interval of time and pull it back later. Feature flags also allow developers to keep a feature ‘active’ for a defined period. Once expired, the feature which is controlled by feature flag will be hidden from end users.
Before we conclude, a couple of call outs:
• Developers should watch out for the number of feature flags used in an application. The intent is to facilitate agility without increasing complexity.
• A feature flag added to the code is a technical debt from the moment it’s added. Every feature toggle adds a new code path through the application which makes it harder to test and debug the code. Hence, it’s important to remove the toggle from the code after its use or expiry.
• Do not add feature flags for completely easy or tested functionality. You can release such functionality without protecting it with a feature flag.
• Do not use feature flags for API end points that are not public facing.
To summarize, with feature flag management, a team can launch, control, and measure features at scale. It’s very easy for companies to adopt Feature Flagging in their projects with several feature management solutions available in the market. There are many platforms available in the market to manage your feature flags at scale such as LaunchDarkly, IBM Cloud AppLaunch, and Optimizely.
Weekly Brief
Read Also
Delivering customer excellence in 2021 and beyond
Clare Naunton, Customer and Stakeholder Experience Programme Director, National Grid
Avoiding the 'Shiny Object' Trap of Digital Transformation
Timothy White, Vice President & Head of Global Digital Commercial, Teva Pharmaceuticals
Procurement in a Pandemic
Darren Woollard MIWFM MASC AIRPM TIFSM ASyI RISC GSIP, Head of Facilities Management, UK, Praesepe PLC
Interweaving Drones with Air Traffic Management
Oliver Pulcher, Director of Corporate Development, Strategy, International Affairs and UAS at DFS Deutsche Flugsicherung
Security in the Cloud Requires a New Way of Thinking
Dan Constantino, Director, Security Operations, Cox Automotive
Adapting to the Ever-changing Threat Landscape
Brian Hussey, Global Director of SpiderLabs Incident Response & Readiness, Trustwave

I agree We use cookies on this website to enhance your user experience. By clicking any link on this page you are giving your consent for us to set cookies. More info