Feature Flags: The Cure for DevOps Remote Work Stress
The world has drastically changed. As a result, we have had to adapt the way we shop, socialize, educate and work. Businesses have had to adapt to keep operations going, and the biggest change they’ve had to make has been the move to remote working. For most, this has meant bringing a laptop home from the office and setting up at a home desk or dining table. For teams used to collaborating in-person, it may feel like the world has turned upside down.
DevOps teams have been thrust into a decentralized environment at the very time they are facing record traffic and the pressure to return to or even exceed their prior cadence. The current climate has accelerated demand for fast and efficiently running online services, such as e-commerce, streaming services and video conference platforms. Digital platforms not only are facing greater demand, but they are also seen as more mission-critical than ever.
The stress of all this can be daunting, but it’s useful to remember that the very idea of DevOps emerged as a way to move faster with greater resilience. We need to trust the patterns and tools that were emerging as the “new normal” even before the current crisis emerged.
One of those patterns, which is sometimes referred to as progressive delivery, is the idea of decoupling deployment from release. The tool many have chosen to accomplish progressive delivery, especially to meet the needs of decoupled and decentralized teams, is feature flags.
Feature flags allow teams to deploy new features in production while restricting access to only a subset of users. The ability to control exposure without requiring further deployments or infrastructure changes in turn makes testing in production (exposing the feature to internal dev and test users only) and canary testing (exposing the feature to a small number of real users before ramping up to 100%) straightforward and repeatable processes.
This “fewer moving parts” way of promoting features eliminates the need for the large-scale coordination that an all-or-nothing “big bang” release requires. That’s why feature flags are particularly well-suited for teams to work remotely, in decentralized environments.
Feature flags allow for time to make sure everything is working properly before the switch is flipped. It is the equivalent of changing the plane while you’re flying, without the passengers falling. For this reason, DevOps teams that were using feature flags prior to global shelter-in-place orders were much better positioned to continue development efforts without interruption while working remotely. Feature flags allow for DevOps teams to operate in gradual stages with the ease of experimentation and rollbacks, significantly reducing the stresses of remote work.