Product managers are responsible for deciding what products to develop that align with the company's goals and also satisfy the needs of the customers. To be a successful product manager, you have to start by defining what a winning product looks like and iterate over it until it's right. To do so, you have to understand that at its core, a product is broken down into its features and quality of user experience.
However, when developing these features, even after thoroughly testing them in your development environment for potential bugs and issues that may negatively impact user experience, it may not always be sufficient to ensure a successful release to users.
What is a Feature Rollback?
When it comes to feature delivery, things don't always go according to plan. A feature may work perfectly fine when tested in development, but may not function as expected or may receive poor user acceptance when it hits production or gets released to users.
A feature rollback is a way to quickly undo a feature rollout (release) by reverting the code changes back to the previous state without the feature's release – In other words, it is the action of “un-releasing” or “rolling back” the feature from production back to development and undoing access to it, so users are no longer exposed to it.
Why is Feature Rollback Important to Product Managers?
Nowadays, software development is about speed and efficiency when it comes to feature releases, UI improvements, and bug fixes. It is ultimately a product manager's responsibility to manage a product throughout its lifecycle from the stages of developing, testing, deploying, to finally rolling out features to users.
Feature rollback is critical whenever these changes are pushed into production or a feature is released to users because unexpected behaviors can still occur, which could negatively impact users and even lead to service disruption.
When issues are detected during a feature release or the feature is not well received, a rollback workflow is needed to immediately safeguard your users and their experience by quickly rolling back the feature while you iterate or figure out the root cause of the problem.
A feature rollback is therefore essential to product managers in preparation for situations where things don't go as planned because it helps ensure a swift response to detected issues and quick resolution without having to worry about its disruption to production operations which could lead to unexpected costs.
Use Case Scenarios for Feature Rollback Strategy
There are several case scenarios where having a rollback strategy in your development workflow and release cycle can be the right solution:
The Feature Performs Poorly After its Release
Despite the fact that we might like to believe our users are like us, they are not. We might speculate that we understand our users and what they want as customers. However, every decision to develop a feature is at best, a guess and without actual real-world feedback, a likely shot in the dark at what these users want.
Suppose you develop a new feature based on this assumption, and then, after it is released, you discover that it’s performing poorly because users do not like it. Where do you go from there?
You may want to perform a feature rollback so as to "un-release" this feature from its live environment back to its development environment and gather as much real-world user feedback as you can from this release.
You can then iterate with the newly acquired data to make improvements to the feature or come up with a better initiative, so user expectations are better met.
A Feature Bug sneaks its way onto Production
Imagine you developed a new messaging feature and before releasing it to users, it passes through several rigorous QA and internal testing processes. This testing helps uncover bugs and potential problems in the newly developed feature that are later resolved before it is deployed to production.
However, after releasing this messaging feature to users, a strange bug is encountered that prevents users from sending messages. In such unexpected situations where a feature behaves differently in production as a result of bugs or other technical issues. In order to fix it, you will likely have to roll back the feature.
A rollback option gives you a near-real-time response to major problems such as these that occur during a feature release.
Developing a Rollback Option Using Feature Flags
A feature flag is a simple way to toggle on or off certain functionality for some or all of your users. This toggling can be done without the active participation of your development team via a user interface provided by companies that offer feature flags as a service. Thus, giving not just developers, but also non-technical members of a product control access to run tests, and experiments or incrementally roll out a feature to users.
Feature flags control who sees and has access to a feature and can be used to break your feature release into incremental rollouts through user segmentation. This is done by first exposing the feature to only a few of your users, such as your internal users or beta testers in production. After gathering feedback from these initial users, you can then gradually roll it out to the rest of your users until every user has access.
Most importantly, feature flags come with kill switches to facilitate a quick rollback of a feature at any time if things don't go as planned. This empowers you as a product manager and your development team with the flexibility to adapt to unexpected changes as the need arises.
Using Feature Flags to Perform A/B Tests and Experiments
A product manager is constantly tasked with adding value to products and delivering new customer experiences by bringing their best ideas to life. This is done by conducting user experiments and market research to gain insight into what product ideas would perform as planned or even better before making a final decision on what to move forward with.
Feature flags include powerful custom targeting functionalities that give you, your engineers and marketing teams control access to perform real-world experiments to better understand your users. In addition, testing more features with more people early in its development cycle helps you decrease certain risks while also gaining business insights before making final rollout decisions.
With feature flags, you can build quality into your product delivery by running live A/B tests on users to experiment with your ideas in order to find out which idea performs better with users. This ensures that your ideas match both customer expectations and your company's objective.
The deployment process is inherently risky, and there can be many unforeseen pitfalls. However, you still have to add new features to your products to keep your customers happy. Having a feature flag rollback option in a development workflow allows you to test new features in a real-world environment earlier on in their development circle while avoiding the most common risks of deployment and reducing risks of failure, which allows you to better serve users.
By making it easier for product managers to choose which ideas and features to release or rollback; to whom and when; feature flags help bridge the gap between continuous innovation and frequent deployments to production. Product managers are able to set their companies apart from competitors by orchestrating unique user experiences that drive long-term success with this level of control provided by feature flags.
Most importantly, you don’t have to burden your engineers with the task of building home-made feature flags as there are companies such as ConfigCat that conveniently offer feature flags as a service – making configuring and managing your flags a dashboard away.