Key takeaways
- Releasing often only works if the pre-release checks are automated and identical every time.
- A written checklist beats institutional memory the first time someone is on holiday.
- Anything you check manually before every release is a candidate for the pipeline.
In this new agile world, you want to improve your application every day by releasing early and often.
How do you manage to release often without major issues?
Create a checklist for your software releases, a list of steps to blindly follow every time release a new piece of software.
Here is an example of what steps your list should contain:
- Is the code to be released tested? Tested should include the following types of tests: functional testing, load testing, speed testing, accessibility testing, exploratory testing, API testing, Unit testing and others.
- Are all branches code reviewed and merged?
- Is the code to be released tagged with the correct version?
- Do we have approval from all teams to release this piece of functionality in front of live customers?
- Has it been tested on local and staging environments?
- Do we have a rollback plan in case something goes wrong? if yes, which are the steps to rollback?
- Are all assets minified and optimized for production release?
- Are All automated and manual tests passing on local and staging environments?
- Do we have someone on-call?
- For a change to a busy page or endpoint, was it load tested and compared against the previous run as a baseline, so a slowdown is caught in the sprint that caused it?
This list can go on and on, but I would suggest that every team should have a similar checklist.
This checklist should be reviewed and updated every 1-2 weeks (doesn’t matter if you do Scrum or Kanban), most likely at the team retrospective meetings.

Create a Software Release Checklist
Make sure you starting working on this list and share it with your team as soon as possible. It will help you discover a lot of issues or bugs earlier on.
How does your checklist look like?
Written by Bogdan Vazzolla.
LoadFocus is a cloud performance, load and stress testing tool which provides the infrastructure and the ability to run all these tests with thousands of concurrent users, from multiple cloud locations, in less than a few minutes, keep history of the results, compare different runs to inspect performance improvements or performance degradation.
Frequently Asked Questions
Why write the release steps down if the team already knows them?
Because the team is not always the same people. The first time someone is on holiday or a new joiner runs the release, institutional memory is not available and the checklist is the only thing that is.
What belongs on the list?
Everything you would be unhappy to discover was skipped: the test types that must have run, the environment checks, the rollback plan, and who is told when it ships.
Should the checklist stay manual?
Only until you can automate an item. Anything checked by hand before every single release is a candidate for the pipeline, and moving it there is what makes releasing often survivable.