Early and frequent software updates give companies a competitive advantage. According to McKinsey, businesses with higher software delivery velocity experienced four to five times faster revenue growth compared to their slower counterparts. Progressive deployment enables the desired short delivery cycle and improves software quality through automated processes and an accelerated feedback loop. The improved workflow satisfies customer demand for frequent updates with new features and bug fixes and drives higher business value.
Progressive deployment, the next generation of continuous deployment, releases code from continuous integration into a production environment incrementally. The automated process enables continuous feedback and eliminates unnecessary human involvement.
By limiting the so-called “blast radius” of production code change, progressive deployment minimizes outages and the number of users affected by any unknown issues – both of which are very detrimental to business. Statistica reports outages cost companies $100,000 to $5 million per hour, and PwC reports nearly a third of U.S. consumers say they would leave a brand after just one bad experience.
Let’s explore how progressive deployment and the resulting feedback enhance the development process.
The 5 steps of progressive deployment
The cycle of progressive deployment involves five steps.
- Code development: Development teams create code for the software update, commit it to a version control system and run tests through continuous integration software. Once the application build passes, it is ready for the next step.
- Staging environment: The new code moves to a replica of a production environment for more testing. Additional integration and smoke tests that require a deployed environment are run, and teams can determine if the software is ready for deployment.
- Progressive deployment: Once the application performs successfully in the staging environment, progressive delivery begins. The process is automated — when a given production environment’s maintenance window starts, the delivery pipeline progressively delivers the update to a small subset of users using strategies like canary or blue/green.
- Feedback gathering: Once the code updates are in the live production environment, observability tools gather data on performance. The tools evaluate the information to determine the application’s health.
- Audience expansion: If everything works correctly, a larger group of users receive the update, and observability tools monitor application health. If the software continues to run well, the traffic routed to the new version increases incrementally until 100% of the audience receives the software. If problems arise at any point, the change rolls back to a designated previous version.
The value of continuous feedback
The feedback loops in progressive deployment are fast and continuous. Data collected during each step helps the development team quickly troubleshoot problems without impacting the customers’ quality of service. The controlled release and constant testing significantly reduce downtime and outages.
The automated deployment process eliminates the tedious but complicated steps necessary to release new software. Instead of dealing with deployment issues, developers and engineers can focus on fixing problems with the application, which decreases the time to commit and moves the next update through the pipeline significantly faster than a manual process allows. Progressive deployment enables development teams to release software updates within days or even hours rather than forcing customers to wait months for fixes and new features.
Customer demand and expectations for new software are higher than ever, and progressive deployment makes it easier for teams to satisfy user needs. By lightening developers’ workload and providing continuous feedback, the process speeds up the development cycle and improves overall software quality.