To be on the same page, the release management process usually covers how software releases are planned, designed, and deployed. This includes code handover from devs to QA (and back if needed), testing, potential DevOps release management activities, and actual deployment.
If you’re interested, you can also watch a video where we go into detail on when it is time to formalise a release management lifecycle.
Release control benefits
Even if you don’t have to meet some regulatory requirements, there are a number of reasons to formalise your release management lifecycle.
- Release control brings improved stability and reliability. Most companies already use a test case management tool and even have some issue prioritisation in mind. Both company and employees, however, would benefit from a formal checklist that they can tick off.
- Controlled feature rollout is a somewhat recent advantage that makes a big difference for actively supported products. You may want to see what the first 10% off users think of new functionality before going through with it. You could have a feature that needs some polish, but you can’t or won’t release another update just to enable it. Proper release management brings modularity to enable certain functionality later.
- Release history is a great asset even if your company is not required to have one. It simplifies potential internal audits, provides the data to improve your software development, and gives the means to quickly identify malicious or negligent updates
- Security is a major consideration for implementing release control. You can natively enforce not just QA checks, but manual code sign-offs. The reason why you don’t really see sabotage within big software companies is simple: someone catches potentially hazardous code.
- Meeting the timeline is easier with Agile release management if your company follows the Agile methodology. Release control imposes genuine milestones that the team has to meet so a new build is released on time.
ALM solution for Agile release management
Advantages of releasing on demand
On-demand releases are better known as continuous deployment. They decouple patches and even feature updates from the traditional weekly/monthly cycles. We at aqua ALM recently adopted this approach to great success.
Here are just some reasons to adopt on-demand releases:
- Faster releases suit changing business environments. From Pokemon GO to Tinder, a lot of geolocation-based, interaction-focused services had to pivot when the pandemic hit. Even an extra week of waiting would have caused a major revenue hit as countries started to lock down at around the same time.
- Business experiments are easier to do if you can update the software whenever you want. YouTube recently tried paywalling 4K playback for a small portion of users, but Google walked back upon the first whiff of community outrage.
- Bottleneck reduction is arguably the biggest advantage of on-demand releases. Completed features are not waiting for weeks/months to be released. Business analysts and the product team are not idling before they see initial feedback and can quickly get onto a second iteration of a certain feature.
- Quality baseline goes up as well. Even if you have a skeleton crew in vacation season tackling an unforeseen issue, continuous delivery ensures a good level of automated testing and proper release protocol. It also brings simplified rollback in case a new release made the issue even worse or broke something else.
The best practices and approaches
Here are a few tips for introducing and maintaining good release management. Other companies learnt from their mistakes so you don’t have to.
- Set a release schedule or reject it. The setup of your release management will somewhat vary if you use unconstrained continuous delivery relative to Agile-dictated cycles or even a Waterfall release plan.
- Adopt version control software. Release management is greatly simplified if you’re using a tool that keeps track of changes to the code repository. GIt and git-derivative solutions are proven options for companies that can use Cloud or must stick to On-Premise software only.
- Maintain different environments to minimise disruption. If you are not employing continuous delivery, it is still important to observe how your code behaves before deploying it. Deploy to one or multiple test environments and a staging environment (stage) before you go into production. The more costly a potential service disruption is, the more effort you should put into making the stage as close to production as possible.
- Add metrics and triggers. Intelligent release management can utilise incident monitoring software (e.g. Splunk) to stop gradual rollout or revert the update due to a critical issue. This data will also help with the larger effort of measuring QA effectiveness via metrics.
Modern software development has also moved on from a single release manager that is responsible for every build. Here’s what engineer-turned-CEO Bob Davis had to say a few months ago:
‘Release managers should be asking themselves how they can focus their attention on the areas of the business that need work instead of checking in on everything. For example, if there are 100 releases in the pipeline, it’s not likely that there are problems for the release manager to address in each one.
A progressive release manager will identify what exactly needs attention and show up when needed. Teams are happy to get help when they need it, and they are happy not to be bothered when everything is good.’
Why should you implement automation for release management?
The three main arguments for automation are quality, speed, and extra functionality. Manual release management takes time to implement and can still go wrong due to the human factor. Adopting automation solves these problems and also gives you extra opportunities, such as gradual rollout, automated rollback, and integrated testing.
Automated release management works best when powered by an Application Lifecycle Management solution. Such tools help you coordinate all release management software and also tie QA & dev issue trackers into the release management routine. If release management is your primary need, our advice is to pick an ALM that has a well-documented REST API to connect any tool.
All-in-one ALM for automated release management, flexible QA, and transparent software development