It’s time to separate feature releases from your deployments [2023]
Historically, software development processes mean a lot of features tend to be grouped together, released as a bundle in a single deployment. This means many software development teams tend to develop a service, then continue maintenance of the service long after deployment.
In the book Accelerate, the authors found that high performing DevOps teams constantly strived to constantly improve which became a key driver of business value. Not surprisingly, this expanded to the success of a company: Organizations with high-performing DevOps teams tended to perform better than organizations with low-performing DevOps teams.
One major factor in determining DevOps performance: Deployment frequency.
High performing DevOps teams deploy more frequently
Frequent deployments mean teams spend less time waiting to deploy a feature or tool that’s already done. Users have less of a wait as well.
This means your developers are able to get feedback a lot faster. This can also dramatically shorten the time between idea to implementation.
In a whitepaper published by DORA and Google, high performing DevOps teams excelled “at all aspects of throughput and stability”, but had room for improvement. In comparison, elite DevOps teams consistently delivered superior software at the highest levels. To improve throughput and stability, high performers and elite teams were able to coordinate and deploy on-demand, multiple times a day.
However, there is such a thing as deploying too often.
What’s the problem with deploying too often?
From a product management or marketing point of view , too many deployments often turns into a new set of challenges.
- Deploying small incremental changes multiple times per day could end up harming the user experience rather than improving it.
- Frequent deployments end up using the live production environment as a testbed. This can be a slippery slope. Deployments to production usually should not replace proper testing through your deployment pipeline. However, for certain edge cases or critical issues, it makes sense to run the code in a production environment. It may be hard to locate the issue otherwise.
- From a wider business perspective, it’s common for marketing and PR campaigns to be directly coupled to the launch of a new feature. To get the most out of the campaign, marketers prefer to limit public access before a campaign goes live.
With all three scenarios, feature flags can help manage deployments and improve efficiency.
How feature flags bring value to DevOps teams
A feature flags management system like Unleash allows you to decouple deploy to production from release to customers.
This means you get to control who has access to which feature, and when. With feature flags, DevOps teams can continue to deploy features at a high frequency to a controlled group of users. This is great for further testing and gradual rollouts.
Splitting feature releases from deployments can bring real business value into DevOps. The team can use activation strategies based on the company’s overall business strategy to decide on who gets what. This is regardless of when a feature is deployed.
One common activation strategy is a gradual rollout. This allows the team to enable the deployment to a small and defined subset of live users, instead of exposing the new feature to the entire customer base. It’s a good way to beta test new features and get feedback before releasing them to everyone.
Using the centralized overview in Unleash, product management can fully control when a new feature or customer experience goes live to all customers. The best part is that product teams can go forward with development team updating a config-file or a token in the code.
Summary
A high-performing DevOps team, with the frequent deployment of new features, can support the overall development of a high-performing organization. To bridge the gap between continuous innovation and frequent deployments to production, feature flags can make it easier for companies to decide which new features should be released to who and when.
Companies with this level control can really dive deep into a unique user experience to stand out from the competition and drive long-term success.
See for yourself and try out Unleash
GET STARTED | TRY OUR DEMO |
Note: This blog was updated for clarity in March, 2023.