Fotolia
Feature flags emerge as enterprise DevOps must-have
CloudBees and Atlassian have feature flags on their near-term product roadmaps, as enterprise DevOps shops seek to lower the risk of continuous code deployment to production.
In IT, what's old sometimes becomes new again when the circumstances are right -- and the time is apparently right for feature flags to make a comeback on enterprise DevOps vendors' product roadmaps.
Feature flags, which insert conditional code into software deployments that can flip features on and off like a switch, have been used for most of the last decade by forward-thinking software development shops via homegrown tools. In the last three years, feature flags became the domain of specialist software vendors such as Rollout, LaunchDarkly and Optimizely. Now, larger vendors with broader continuous deployment tool suites have taken an interest in feature flag management, including CloudBees, which acquired Rollout in April, and Atlassian, which plans to offer more centralized coordination and control of feature flags across all of its Atlassian cloud products, according to its public cloud roadmap.
Atlassian customers such as Zipcar have already used homegrown approaches and specialized vendor products such as Optimizely to build feature flags into software delivery processes, but expect their use to expand, especially in back-end systems.
"Feature flags are a hot topic now because of adoption of cloud-native development patterns in enterprise shops, not just tech-forward companies but larger, slower-moving enterprises that look for packaged products," said Andy Rosequist, director of IT operations at the Boston-based car-sharing service. "Feature flags [are becoming] a thing you can buy as part of DevOps tools, versus a development strategy."
Continuous delivery tools fold in feature flag management
Large enterprise CloudBees users also anticipate that they will broaden their use of feature flags as the vendor adds Rollout IP to its forthcoming software delivery management (SDM) platform.
"We have hundreds of products that cover thousands of technologies, so [we're not just dealing with] the challenges [of] different groups that we're bringing together" under DevOps, said Daniel Ritchie, distinguished engineer at Broadridge, a financial services company based in New York that uses CloudBees Core and plans to evaluate SDM. "We're not just coordinating the complexity within a single product; we're also coordinating multiple products. When you add in all of the different layers that are involved in that, that value stream network becomes extremely complex."
With such complexity, even small, iterative code changes can lead to massive headaches, Ritchie said. Feature flags can help to lessen the pain of the phenomenon known as "merge hell," when such complex codebases must be brought up to date with new features all at once.
Daniel RitchieDistinguished engineer, Broadridge
"[It's related to] what [ Continuous Delivery author] Jez Humble used to talk about, with moving toward smaller incremental releases of value, some compartmentalized, small aspect of your product that you release in chunks," Ritchie said. "Feature flagging is the most granular, smallest unit of incremental value that you could possibly get to -- you could literally have a feature flag that is a single line of code."
It also makes it easy for companies such as Broadridge to extricate themselves from "merge hell" should it arise, by toggling off a problematic feature with the flip of a switch. Feature flags can also put product managers within business units in charge of when and where features are released within an organization's customer base, while allowing IT teams to avoid discrepancies between test and production environments by simply testing in production before features are visible to customers.
Rosequist said he especially hopes to see feature flags integrated more tightly with Atlassian's Jira issue and project tracking software.
"If designed well, it could be a huge win for Atlassian, if the project and product managers can see, 'is this feature done or not?' in Jira," he said. "It will also be interesting to see where the market goes, whether smaller feature flag specialists will be snapped up by GitHub, Atlassian, Oracle, SAP and Microsoft, the people targeting enterprise software development, and whether feature flags become 'something everyone needs.'"
Feature flags as continuous delivery accelerator
Given the fact that feature flags have only become buzzworthy in recent months among enterprise IT vendors, they may seem like the next step of continuous delivery evolution for advanced DevOps shops. However, CloudBees officials predict they will actually help shops that lag behind the continuous delivery curve to catch up.
"Feature flags help you to get to continuous delivery, because [they] remove the risk of it," said Moritz Plassnig, vice president of cloud at CloudBees, in an interview at DevOps World | Jenkins World in August. "When you go to feature flags first, once you get confident in the release process, then you can automate."
IT experts also see new uses emerging for feature flags among customers, such as enterprise cloud migration with quick rollback in case something goes wrong, and long-term use of feature flags for data residency requirements and app localization along with short-term experimentation.
Companies such as BMW, for example, were discovered in recent analyst research to have long-term, as well as short-term, feature flags in place for product localization.
"Not only did they have to provide localized content to provide a localized experience, but in order to keep the same code tree, and kind of keep things simplified, they found that using feature flags was an easier way to manage it," said Christopher Condo, an analyst at Forrester Research, in a panel presentation at DevOps World | Jenkins World. "People are just finding very creative ways to use them, not only for experimentation, but also as a critical part of their architecture."
Feature flags also stand to change the role of IT operations pros once and for all to an SRE-like focus, Condo said. Feature flags can also be used by IT ops staff in infrastructure-as-code releases, but with developers and business managers fully in charge of code deployments and feature releases, IT ops will be expected to focus more strictly on infrastructure reliability and resiliency.
Feature flags bring IT change management risks
Feature flags may be instrumental in moving large enterprises to true continuous deployment, but like any technology, they have downsides.
"If engineers and product managers don't understand how feature flags fit into a risk management strategy, they can overcomplicate things," Zipcar's Rosequist said. "If not managed well, feature flags can be accidentally turned off, or organizations might not test the right things, and they can make everything worse."
Feature flags require strong observability tools to deliver reliable results for code testing in production before features are made live, and strong change management processes that include cleanup for feature flags that are no longer in use. That's where vendors' feature flag management tools can help, but organizations must also realign change management workflows to accommodate them.
"As always, integration with legacy systems, human skills and process changes are where the rubber hits the road," said Rachel Stephens, an analyst at RedMonk in Portland, Maine, during the DevOps World | Jenkins World panel presentation.