By Egil Østhus
In this blog post we will look at why feature toggles brings business value into DevOps, and how. We are getting used to have the same software development team taking care of both the development and the operations of the services — it makes perfect sense to have the ones that develop the service, also taking care of it afterwards.
DORA — the state of devops have also through their four-year research program presented in Accelerate, found that high performing DevOps organization perform better than less performing DevOps organizations. In the DORA — state of devops report 2018, it was presented that Throughput and Stability was the two key characteristics for the Elite performers. In order to achieve high Throughput — it was stated that the Elite performers were able to deploy On-demand, understood as multiple deployments per day, when needed.
It is clear that doing multiple deployments per day is advantageous — for the throughput in the development team. Less time waiting to deploy, real feedback faster and shorter time-from-idea-to-actual-implementation. The holy grail of high frequency of deployments will eventually get into the paradox that the deploys are happening too often.
From a product management or marketing point of view — the high frequency of deployments often turns into a new set of challenges. First and foremost — deploying multiple times per day, each incremental release does hardly make any sense to the customers.
Second, “we can’t use our live production as a test-bed”, as one Product manager put it in a team meeting. And she is right. Frequent deployments to production is not meant to replace proper testing through your deployment pipeline, but some of those corner cases or some of the really critical issues is really hard to find unless you run the code in the product environment
“we can’t use our live production as a test-bed”Product manager
Third — marketing and PR campaigns are often directly coupled to the launch of a new feature or new customer experience on the digital service. To gain the most effect out of the campaign, it is often preferable to make sure the experience is not (fully) exposed to the public before the campaign goes live.
“decouple deploy to production from release to customers”
For all of the three arguments above is were feature-toggles comes into play. A feature toggle management system, such as unleash-hosted, allows you to decouple deploy to production from release to customers – think of it as decoupling the engineering teams need for rapid iterations from the business side need for full control. Allowing this separation, starts to bring business value into DevOps. Using different activation strategies, the strategic business decision on who gets what, when is fully independent from the frequent deployments to production by the software development team.
One common activation strategy, is to use Gradual rollout. This strategy allows the team to enable the deployment to the team or a defined, small subset of the live users and not expose it to the full customer base.
Using the centralized overview part of unleash-hosted, product management are able to be in full control of when the new feature or customer experience goes live, to all customers. The neat thing is that the product manager are in position to do so, without depending on the development team updating a config-file or token in code.
DevOps allows organizations to be high performance. To bridge the gap between the continuous innovation and frequent deployments to productions, feature toggle management systems such as unleash-hosted decouples deploy to production from the strategic decision of release to customer.