Today, software development is all about the need for speed. Feature updates, UI changes and bug fixes are all done in near real time, and the frenetic pace is ever-increasing. Users have grown accustomed to constant updates to apps and expect any issues to be fixed immediately.
Pushing new features or software fixes has always been fraught with anxiety, but the speed and frequency of today’s release cycles bring even more pressure. As soon as code is released to the public, users can instantly access the feature, leaving many variables out of developers’ control. But, there is a way to take back control and maintain visibility over the release: feature flags.
Raising the feature flag
At a basic level, feature flags allow development teams to turn features on and off without deploying new code. Think of flags like dials in the cloud. When the dial is attached to any feature in a product–whether a new one or an old one–it controls who sees it, who has access to it and how quickly it is delivered to an entire customer base.
Feature flags let organizations break the tyranny of the Thursday night release by breaking it into smaller bits to control exposure and enable a continuous release motion. You might start by “releasing” only to internal users or beta testers so you can test in production (TiP) to make sure nothing has been missed. From there, you might roll out to your customers gradually before going to 100% availability.
This controlled exposure approach removes the panic and anxiety around the weekly release schedule. Having the ability to completely turn off features means that feature flags also increase application stability and remove the need for hotfixes. It’s less often necessary to assemble a war room if there is a problem when you can simply turn off the feature in a matter of seconds. By working feature flags into the release process, teams take control of the who, what and when in terms of releases. They can dictate types of users, demographics, locations and scale the release of the new feature.
Not another thing to manage
Outside of the DevOps team, feature flags can also be really powerful for product managers. Historically, the release of a new feature meant that product managers had to coordinate with cross-functional teams to ensure the release was executed successfully. This coordination involved making sure marketing was ready to publish a blog post about the feature, the sales team knew how to use and sell the new feature, and the product marketing team had documentation prepared for how the feature set works–and this all had to be perfectly synchronized with the engineers’ timeline for releasing the feature.
Feature flags give product managers the keys to the kingdom. Product managers can now go into the user interface and turn the feature on for some or all of their customers without waiting for engineers to complete their next deploy. Not having to coordinate that extra piece of the schedule gives a lot of power and time back to the product manager.
Feature experimentation: data-driven customer feedback
Another aspect of a product manager’s job is collecting feedback. They need answers to questions related to business KPIs, like “How is this feature performing for my customers?”, “Are customers able to do the action the feature is intended to perform?” and “Are we generating more revenue from the feature?” Feature flags can also help in this area.
As product managers ramp-up a feature, they are simultaneously shortening the feedback cycle. Since feature flags allow for segmentation, where one customer group sees one set of features and another customer group sees a different set of features, and since key metrics can be captured into separate buckets for each group, product managers can now run controlled experiments as part of a release cycle. Seeing KPIs aligned with the different customer groups helps you understand which features are performing the most successfully.
Let’s escape to the Swiss Alps for an example
If you’ve read this far, you probably have a pretty good idea about how this approach could add value to your work as a PM. To really cement your learning, consider reading the brief post my colleague David Martin wrote, “Feature Experimentation: Choosing the Best Route.” In this four-minute read, David puts you in the role of commercial tour planner choosing the best route for families to hike along the Tour Mont Blanc in France, Switzerland and Italy. Feature experimentation teams you up with actual customers to help you find the best path forward.
Aligning your entire team to deliver value
As product managers embrace usage measurement tied to feature rollouts, entire teams can better align with agile best practices to continuously push out the smallest incremental set of new features. By understanding the performance of every feature, you’ll be better equipped to iterate and refine your ideal product roadmap.