Feature management trends are growing
|Richard Harris in Programming Wednesday, March 6, 2019|
How to avoid crashes and major user issues when publishing new code or launching new features in your software by implementing feature management.
As companies transition to a world built on software, there is an increasing requirement to move quickly, innovate faster, and deliver exceptional user experiences. As such, feature management is a process development teams are increasingly relying on as a best practice to separate code deployments from feature releases. This allows teams to control feature lifecycles, eliminate risk from deployment processes, and increase efficiency throughout development cycles.
Feature flagging is not a new concept. For decades development teams have utilized this concept by wrapping a section of code with a targeted if/else statement, allowing them to control its release to their end users. Starting to feature flag isn't hard, but managing feature flags at scale with granular control over who sees what is.
We caught up with Adam Zimman at LaunchDarkly, a feature management platform, to get insight on why this trend is growing and what we can expect in the future.
ADM: How has software development changed in recent years with the speed of tech demanding programmers to move quickly and deliver exceptional user experiences?
Zimman: When applications began living in the cloud, especially Software as a Service (SaaS) apps, the dynamics around software delivery shifted. Software could be updated at any time or pace. This was not the case with packaged applications that were shipped on physical media. Application builders started delivering updates more frequently, some vendors even managed to update continuously. Customers were then required to consume these updates immediately.
ADM: User expectations changed with this increased velocity of delivery. Modern users have come to expect the application (or the feature) they need, to be ready when they need it. But more tenured users continue to struggle with a faster pace of change.
Zimman: Application developers required to serve both of these user types have to find a cadence that balances the risk of moving more quickly, with the risk of waiting too long. Immediate updates also risks immediate exposure to bugs or errors. The challenge is to move fast but with less risk.
ADM: What is feature management and why is this emerging trend impactful for programmers?
Zimman: Adopters of Feature Management are eliminating risk while accelerating the delivery of value. Feature management is a best practice used by leading development teams to safely separate the act of deploying code from releasing features to users. This process is most commonly accomplished through feature flags.
This is not a new technique. Teams have been using feature flags for decades. They are essentially an if / then statement that acts as a decision point in your application. These control points are special because the outcome can be changed without having to change the code or restart a service. They are switches in your code.
What it does is give developers better control over those flags. Starting to feature flag is easy, managing them at scale is difficult. With a central platform, teams have visibility over all their flags and can control them on a granular level.
Teams that feature flag are deploying code whenever they want. The decision to release a feature (making it visible to end users) can then be done when things are ready. This provides the control to decide who sees what, and when. And if there’s ever an issue, they can simply turn that feature off without having to rollback or redeploy code. This gives them a stronger handle on what they’re putting into the world, and it makes it much safer to move quickly and continuously deliver.
ADM: How has the need for feature management evolved as big companies make it harder for programmers to compete and keep up with the need to constantly update their app / web features?
Zimman: Facebook was one of the first companies to release continuously. To help their teams move quickly and keep their site operating smoothly, they developed a management platform called Gatekeeper. Other large organizations with equally seemingly endless resources did the same. Twitter has a system they call Decider, Netflix developed their own management system, and Google and GitHub have internal tools as well, to name a few.
As these organizations adopted CI / CD practices, it became clear that feature management was a necessary part of being able to truly delivery continuously. They have gotten so good at it, they’ve changed how users interact with applications. Users now expect more innovative services. And that becomes challenging for organizations that don’t have the engineering power and resources of a Google or Facebook.
ADM: What is the biggest challenge for programmers in balancing the need for efficiency and speed as well as the management of risk in the fast-paced deployment of new features and updates?
Zimman: The greatest challenge is the balance between the risk profile of users. For your most enthusiastic users that anxiously await all your great new features, you want to get their feedback as soon as possible. But exposing your more conservative users before something is polished can result in a negative response.
Having the ability to target the appropriate user base eliminates this risk. You can get the feedback you want without risking negative impact. Microsoft refers to this as “controlling your blast radius.”
ADM: How are feature flags helping developers manage this risk?
Zimman: Feature flags give development teams dynamic control over their code. When they have a management platform like LaunchDarkly, they get to decide when a feature is available to end users. They even get to decide which users will experience a particular feature, and how.
Besides being used in release processes, feature flags allow teams to safely test and validate ideas, and manage operational risks. are using feature management to , test in production, manage beta groups, validate their ideas with real data so they can iterate faster, perform canary launches, use flags as kill switches to minimize downtime, and keep systems in sync.
Ultimately, teams are using management to control their sphere of influence or blast radius. Lately, we’ve been talking about progressive delivery. This is the technique of delivering changes to small, low-risk audiences, and then expanding to larger and riskier audiences, validating the results as you go. Some would say that continuous delivery enabled people to fail fast. We’ve seen how progressive delivery incorporates a built-for-failure mentality, where management provides control points so that teams can better mitigate risks.
ADM: What impact do feature flags have on improving processes and creating greater efficiency in development cycles?
Zimman: We’ve noticed when teams aren’t afraid of breaking things, they can collaborate more effectively, get feedback sooner and validate their ideas, iterate faster, deliver continuously, and feel more confident in their work.
With feature management, the dev can develop at the speed of innovation. When development teams use feature flags, they’re already thinking about what they’re building, who needs to see it, and what the success criteria are. They can check code in sooner and eliminate long-lived branches. Ultimately, everyone has improved visibility into what is being built, and at what stage it is in.
Once flags are instrumented, tasks within processes can be delegated. Ops can safely deliver code continuously. And of course, a good management platform gives business or other application owners control over features and the ability to more actively participate in testing and feedback loops.
This April we’re hosting our first annual conference, Trajectory. We have an amazing lineup of speakers who are going to talk about how they do this. Yes, teams are delivering more, faster, but it’s great to see how management has transformed their teams and supports DevOps ideals.
ADM: What trends can we expect to see in the near future as management continues to evolve and tech continues to move faster every day?
Zimman: We are already seeing developers and companies building solutions on top of our platform. We’re seeing the creation of feedback loops to segment users based on real-time behavior. Customers are building automation to control infrastructure, by flipping feature flags when monitoring alerts are triggered. These solutions extend the use cases of feature flags well beyond what we originally envisioned. And it is awesome.
Feature flags are a remarkable tool for creating control points in an application. Folks are experimenting with new use cases as they gain comfort with a feature management platform that is scalable and reliable.
Specific to LaunchDarkly, we are looking forward to enhancing the tools for these developers to build great solutions. We’ll also be building tools to make these solutions more accessible to LaunchDarkly’s customers.
Adam Zimman is the VP of Product & Platform at LaunchDarkly. Adam has over 20 years of experience working in a variety of roles from software engineering through to technical sales. He has worked in both enterprise and consumer companies such as VMware, EMC and GitHub. Adam is also an Advisor for a number of startups and nonprofits. His perspective on life has been shaped by a background in physics and visual art, an ongoing adventure as a husband and father and a childhood career as a fire juggler.