Progressive delivery can de-risk your deployment process and give your development team the confidence they need to ship new features faster without worrying about the stability of the entire codebase.
This article will break down everything you need to know about progressive delivery and why it is now an essential part of modern software development.
With the right tools at your disposal, such as a feature flagging platform, progressive delivery is a no-brainer. Let’s explore why.
Progressive delivery is a software deployment methodology that emphasises the safe, gradual release of new features to a subset of users.
Development teams following this methodology can ensure that issues are detected and addressed early before new features are made available to the entire user base.
When executed correctly, progressive delivery allows teams to gather user feedback from specific cohorts, monitor the performance of new functionalities, and minimize the impact of potential issues that may crop up along the way.
Progressive delivery emerged as a response to the need for safer deployment practices in complex, large-scale environments.
James Governor, co-founder of RedMonk, introduced the concept of progressive delivery back in 2018 via a blog post.
Over time, as software systems have grown in complexity and the demand for frequent releases only increases, traditional "big bang" releases are now seen as more risky and generally less feasible.
Rather than making experimental features available to your entire user base, you can de-risk the deployment process by only making these features initially available to a small subset of users.
When you are masking changes incrementally, it ensures that every step of the process is controlled and reversible.
Continuous Integration (CI) and Continuous Deployment (CD) are foundational of modern software development practices.
While CI focuses on automating the integration of code changes, CD automates the deployment of these changes to production.
In contrast, progressive delivery is about controlling the exposure of these changes and making sure that they are gradually and safely rolled out to users in a “de-risked” environment.
Essentially, while CI/CD ensures code gets to production smoothly, progressive delivery determines how and when users see it.
This is where feature flags come into play.
When it comes to executing progressive delivery, feature flags are a useful tool.
These are toggles that can turn features on or off without requiring code changes or deployments.
By using feature flags, teams can deploy code to production but hide certain features from users until they're ready for wider release.
This mechanism also allows for testing in production, canary releases, and easy rollback in case of issues.
You can think of feature flags as the safety net that enables you to confidently deploy new features without risking the stability of your entire codebase.
With the support of feature flags, progressive delivery significantly reduces the risks associated with deployments.
By releasing new features to a small group first, your development team can detect and address issues before they impact the broader user base.
Teams can gather feedback quickly, allowing for rapid iterations and improvements.
This makes the development cycle more efficient as changes can be made on-the-fly based on real-world data.
Not all features are relevant to every user segment.
With progressive delivery, development teams can selectively release features to specific groups.
Development teams can deploy features to users in specific geographic locations.
This is especially useful when complying with regional regulations or testing features that are region-specific.
By rolling out features gradually, development teams can gauge user interest and make necessary adjustments to any new features they are working on.
This prevents large-scale user pushback against unwanted features and ensures you are taking a user-centric approach to product development.
Teams do not need to wait for a feature to be perfect before deploying.
Instead, they can release and refine continuously - which can ensure a faster shipping cycle.
If issues arise, they affect a smaller subset of users, preserving the trust of the majority.
Consistent, successful gradual releases boost user confidence in the software and your team in general.
Users want to feel like they are listened to and removing unnecessary friction from the feature deployment process is perhaps the most effective way to show that you are listening to users and moving quickly to meet their feature needs.
If you are committed to shipping new features faster and creating an environment where your development team can experiment without fear of damaging the codebase, you need a feature flagging solution.
ConfigCat is a feature flagging platform that comes with all the tools you need to stay agile and continue iterating.
Get started with ConfigCat’s feature flag service today.