Why feature flags are not enough and what progressive delivery actually requires

Why feature flags are not enough and what progressive delivery actually requires

Feature flags are a common tool in software development, but they only solve part of the problem. Progressive delivery requires a more comprehensive approach that addresses deployment safety, operational complexity, and business outcomes. This article explains why feature flags alone are insufficient and outlines the full requirements for effective progressive delivery.

01. The limitations of feature flags

Feature flags are often used to control the visibility of code changes, allowing developers to enable or disable features without redeploying. However, feature flags have several limitations:

  • They do not address the underlying complexity of deploying new functionality.
  • They do not provide a way to gradually expose features to users.
  • They do not account for the operational risks of new deployments.

Feature flags are a necessary but insufficient tool. They help manage the visibility of features but do not address the broader challenges of progressive delivery.

02. The need for progressive delivery

Progressive delivery is a more comprehensive approach that includes feature flags but extends to other techniques such as canary releases, A/B testing, and gradual rollouts. Progressive delivery aims to reduce risk and improve the reliability of software deployments.

Progressive delivery requires a combination of tools and practices that work together to ensure that new features are rolled out safely and effectively. This includes:

  • Feature flags to control visibility.
  • Canary releases to test new features in production.
  • A/B testing to measure the impact of new features.
  • Gradual rollouts to expose features to users incrementally.

Progressive delivery is not just about feature flags. It is a holistic approach that addresses the entire deployment process.

03. The operational challenges of progressive delivery

Progressive delivery introduces operational challenges that must be addressed. These challenges include:

  • Managing the complexity of multiple deployment strategies.
  • Ensuring that feature flags are properly configured and maintained.
  • Monitoring the performance and impact of new features.

Operational challenges are a significant consideration in progressive delivery. Teams must be prepared to manage the additional complexity that comes with multiple deployment strategies.

Comparison table showing feature flags vs progressive delivery across 5 dimensions
Comparison table showing feature flags vs progressive delivery across 5 dimensions

04. The business impact of progressive delivery

Progressive delivery can have a significant impact on business outcomes. By reducing the risk of failed deployments, teams can:

  • Improve the reliability of software releases.
  • Enhance the user experience by ensuring that new features are properly tested.
  • Increase the speed of innovation by allowing teams to deploy changes more frequently.

Business impact is a key consideration in progressive delivery. Teams must be able to demonstrate the value of their approach to stakeholders.

Framework for implementing progressive delivery
Framework for implementing progressive delivery

05. A worked example: Progressive delivery in action

Consider a scenario where a team is deploying a new feature to an e-commerce platform. The team uses progressive delivery to ensure that the feature is rolled out safely and effectively.

The team begins by using feature flags to control the visibility of the new feature. They then deploy the feature to a small percentage of users using a canary release. The team monitors the performance of the feature and makes adjustments as needed.

After the canary release, the team gradually rolls out the feature to more users. They use A/B testing to measure the impact of the feature and make data-driven decisions about its future.

This example demonstrates how progressive delivery can be used to deploy a new feature safely and effectively. The team uses a combination of feature flags, canary releases, and A/B testing to ensure that the feature is properly tested and monitored.

06. The future of progressive delivery

The future of progressive delivery will likely involve more automation and integration with other tools. Teams will need to be able to manage multiple deployment strategies and ensure that they are properly configured and maintained.

Progressive delivery is an evolving field, and teams must be prepared to adapt to new tools and techniques as they emerge.

07. Conclusion

Feature flags are a necessary but insufficient tool for progressive delivery. Progressive delivery requires a more comprehensive approach that addresses deployment safety, operational complexity, and business outcomes. Teams must be prepared to manage the additional complexity that comes with multiple deployment strategies and ensure that they are properly configured and maintained.

Disclaimer: Figures cited are from publicly available sources as of [date] and may have changed.

Next Step

Teams should begin by assessing their current deployment strategies and identifying areas where progressive delivery can be implemented. This may involve investing in new tools or training teams on existing technologies.