Feature Flags or Feature Toggles enable organisations to rapidly deploy and release features to customers with a DevOps focus and separate feature releases from code releases. This presentation provides an intro to Feature Flagging, best practices and considerations to take note of when implementing.
2. SAM FERNANDO
Digital Solutions Manager @ Oakton
President of Adelaide Dynamics UG
Technology Specialist
Photography & Music
linkedin.com/in/samfernandoau
www.slideshare.net/shamiraf
3. Agenda
What’s feature flagging/toggles?
Feature flagging vs branching
Type of flags
Use cases
Few libraries
4. What’s feature flagging
aka Feature toggle, feature switcher, feature
flipper
Dynamic control of program flow
Dynamically enable/disable features at run time
Gain more control of a release
Increase continuous delivery
Customer-first and DevOps focused
Complimentary to branching practices
6. What are the benefits?
Move forward quicker with releases
Prevent blocking of a release
Prevent merge conflicts
Control feature behaviour multiple environments
Less tedious code reviews
Separate feature release from code release
14. SaaS Solution
Cloud based control panel
Integrated with Azure DevOps & TFS
Simple yet powerful
Web hooks
Integrations
https://launchdarkly.com
15. Getting started with LaunchDarkly
Install-Package LaunchDarkly.Client
LdClient ldClient = new LdClient("YOUR_SDK_KEY");
User user = User.WithKey(username);
bool showFeature = ldClient.BoolVariation("your.feature.key", user,
false);
if (showFeature) {
// application code to show the feature
}
else {
// the code to run if the feature is off
}
16. Considerations
Increased testing complexity
Remove stale features
Phase out feature flags when stable
Decouple decision points
Inversion of decision
Avoid conditional branching
Flag naming, Logging flag changes
Control flag access