Quality Assurance plays an important, and often overlooked, role in the software release process. Involving QA early and often can help preserve your customer’s current state of functionality as new feature sets are being rolled out. However, not all teams have the luxury of a fully automated production pipeline that streamlines the process through continuous integration and tooling. In order to deliver a high quality experience to your customers during a software release, a focus on coordination, communication and documentation is critical.
Planning and communication are essential to keep your software releases on time and their delivery successful. Your team should set a common cadence that makes it easy to set promote expectations. This should be done during planning or regular release meetings. Everyone, whether you are a single Agile team of 10, or a 20-team, 200-person program, needs to be aware of the schedule and expected deadlines. If you need to lock your users out during your production promotion, you need to notify them as well and set expectations on downtime. Should an issue with your promotion arise, your team will need to be efficient in correction, ensuring operational software when fixes are complete. Delivering a seamless customer experience can be achieved by preparing your team to be ready for anything that could go wrong and by having key team members available for support. Automated or not, you still need to have communication around all events prior, during and post promotion to provide working software for your customers.
Team awareness of all applications, data and/or configuration changes being released gives you an opportunity to ensure accuracy in what is being delivered. This provides an opportunity to analyze dependencies and technical risk should you need to change part of your deployment plan during a promotion. Knowing what is on your list for release also provides clear insights into your testing requirements and testing scope. Without this documentation, your test efforts will not be accurate. This results in potential missed defects and poor application experience for your customer. Knowing what you are delivering ensures a higher quality product experience by ensuring code, data and configuration accuracy in your release.
Along with knowing “what” is being released, knowing “where” artifacts are at any given time is ideal. This provides clear insight into what environment your artifacts are located and will help you prevent accidental promotion of items not scheduled for release. Most teams will likely use two or more environments prior to their production environment for promotion and test activities. You might promote release artifacts from your development environment to a QA environment. Then, potentially to a pre-production environment before progressing to your actual production environment. Tagged artifacts can represent release inclusion, location or even associated applications or databases related to user stories or remediated bugs. They can also provide your team with metrics that quantify release progress and can assist in showcasing the quality of your release.
Consider adding these release tracking enhancements to increase efficiency in your software delivery process:
- Release Tags: Specific release tags based on a release date
- Environment based tags: Dev, QA, Pre Prod, Prod….etc.
- Changeset tracking: Code associations to your User Stories or Bugs
Without coordination, communication and accurate documentation when promoting software you are risking poor quality in delivery. Inclusion of these elements can enhance customer satisfaction by enabling a seamless delivery of new features to the end user. A focus on quality in the software release process ensures that your customers get what they need and want in a timely manner.