Team: Software engineer, QA Engineer, Product Manager
Problem
Release knowledge often relies heavily on one person, leading to challenges during their absence, as backup engineers might lack up-to-date knowledge or permissions, while documentation can be inconsistent. Don’t forget about the QA process for release with their test cases, and a manager who needs updates on the release status.
“Software release is usually an invisible process, managed by someone single-handedly. You normally don’t think about it until this someone goes on vacation or until something goes awfully wrong with a release. Then it becomes everyone’s problem.”
Main Challenges
- Only one engineer as a knowledge holder
- Release documentation is not always kept up to date
- Absence of the responsible person can cause the release to fail or be postponed
- The release is a complex process with many nuances to keep in mind and the risk of human error
- Lack of peer review as the process is not documented and not public
- Teams are using at least three different tools to manage the release, and none of them gives the desired transparency
- Difficulty onboarding new engineers in the release workflow without a documented process
- Back-and-forth communication to define the next steps and get updates on the release
Solution
Codify the workflow to achieve a consistent and reliable release process. Create and automate actionable checklist templates to bring structure, peer review, and optimization.
Documentation: Smart Checklist for Jira Cloud/for Jira Data Center
Company: TitanApps, Software Development, >30 employees
To codify the release process, QA, and Development teams at TitanApps created two Smart Checklist Templates.
Template 1: Regression testing checklist
This template describes all the necessary test cases to verify that recent code changes haven’t affected the existing features. Depending on the planned release, the team can add specific test cases from the checklist template if required. Crucial steps are marked as mandatory, ensuring that the issue transition to “Done” status is blocked unless all mandatory items are completed.
Template 2: Deploy checklist
This template outlines the steps a Developer must complete during the deployment stage of a release. It was converted to Linked – these templates are linked to issues meaning any change to the template will be reflected in all the issues using it. End users (the Development team) can’t make changes to the imported Linked Template other than changing the status of items, which makes the process consistent.
Each time the TitanApps team decides to make a release, they create a ticket with the “Release” issue type. Both checklist templates are added automatically based on template settings. This ensures all team members are aligned and have clear steps to follow.
When the release process was documented for the first time in a checklist, employees started to suggest a list of improvements. Transparency encourages team members to peer review, enhancing the overall workflow.
Result
By integrating Smart Checklists into their release workflow, TitanApps has:
- Sped up the release cycle
- Decreased the risk of human error by adding clear ToDos accomplished with guidelines
- Improved transparency within the team: team members are aware of all the ongoing processes and the next steps
- Gathered historical data on previous releases
- Single source of truth: All release knowledge and processes are readily available to anyone
- Peer review: Once the process is documented, team members can contribute to its enhancement
- Predictability: Your teams know how to proceed with every step of the workflow instead of making decisions on the fly.
- Codified flow: Eliminate human error by following clear steps
- Automated process: Reduce manual work with Smart Checklist automations
Automatically add a short checklist template to all your tickets or based on your criteria (label, custom field value, component field value, etc.) to inform the QA team about the product scope affected by the release. Reduce human error by providing QAs with a specific scope to test.
Checklist templates for the Release workflow
Below are Smart Checklist templates for release management mentioned in this case study. Simply copy and paste it using the Markdown editor and adjust it to your needs.
Regression testing checklist template
# Regression testing
### 1. User Interface (UI)
– Verify all links are functioning correctly
– Verify all buttons are clickable and perform expected actions
– Verify text fields accept input and validate correctly
– Verify dropdown menus and selection lists work as intended
– Verify tooltips and help text display properly
– Verify the application adapts to different screen resolutions and devices (responsive design)
– Verify UI components adhere to design specifications
### 2. Functional Testing
#### 2.1. User Authentication
– Verify user registration process works correctly
– Verify user login/logout functionality
– Verify password reset and retrieval functions
– Verify user account activation and deactivation processes
#### 2.2. Core Features
– Verify primary feature functionality (e.g., adding, editing, and deleting items)
– Verify secondary feature functionality (e.g., searching, sorting, and filtering items)
– Verify form submissions and validation errors
– Verify data processing and calculations are accurate
#### 2.3. User Roles and Permissions
– Verify role-based access control works correctly
– Verify permissions for creating, editing, and deleting resources
### 3. Integration Testing
– Verify integration with third-party services
– Verify API calls and responses are correct and handle errors gracefully
– Verify data synchronization between different modules or systems
### 4. Performance Testing
– Verify the application loads within acceptable time frames
– Verify the application can handle expected concurrent user load
– Verify the application remains stable under peak load conditions
### 5. Security Testing
– Verify data is encrypted during transmission
– Verify proper authentication and authorization mechanisms are in place
– Verify input fields
Deploy checklist template
# Release process
Read additional info in [the release guide](link).
## Pre-deployment
### Prepare release for testing
-! Create new release in Jira [link to releases page]
– Confirm list of tickets for the release with the team
>Usually it’s whatever we have accumulated in the dev branch. These tickets are in “Code approved” status and normally go to the next release. But if necessary, we can choose tickets in any status.
-! Add tickets to the created release in Jira
>They can be added by setting the “Fix versions” field in the ticket, or by using “Bulk edit” feature and selecting all tickets based on Jira issue status, or adding tickets directly from the Release screen.
-! Deploy changes selected for release to testing environment [repository](link)
-! Change status for the tickets that are deployed to testing environment to “Selected for release”
-! Open release Pull Request on GitHub for [production-branch](link)
– Link release Pull Request to the Jira release
-! Make sure tests are passing and there are no merge conflicts for the release Pull Request
-! Notify QA engineers that the release is ready for testing
### Perform Release Testing
-! Test new release version and move verified tickets to “QA Approved”
>Any issues found that are considered release blockers are added to the same Jira release
-! Approve the release Pull Request
– Prepare draft Release Notes and review it with product manager and content writer
– Prepare or update article for the new feature and review it with product manager and content writer
– Schedule the release event in the calendar
>Choose release date and time within the working hours of the engineer with production access. Include one QA and one software engineer. Check vacation days of team members.
## Making release
– Notify the team about starting the release
– Merge the release Pull Request
– Wait for the successful deployment notification
– Check that the production app is online
– Verify there are no new errors in monitoring system
– Notify the team that the release is complete
– Perform smoke testing
## Post release actions
– Mark released tickets as “Released” in Jira
– Mark the Jira release as “Released” in Jira
– Celebrate ?