5 Questions to ask before every Software Release
Shreya Bose, Technical Content Writer at BrowserStack - January 23, 2020
Considering the amount of effort put into developing software, there are few things as frustrating as finding that the product that is released is flawed in some way. This means that much of the effort has to be rolled back, and everyone, including devs and QAs have to start again.
Now, every software requires updates and improvements based on user feedback. But every version should be verified as far as possible for perfect functionality.
An easy way to do this is to ask the right questions before releasing software. This article aims to provide these questions, and explains why they need to be asked. Consider this a software release checklist that must be run through before pushing any code to production.
1. Is the product viable?
It is not possible to release a perfect piece of software that never needs to be updated or changed in any way. The digital landscape is constantly evolving, and every digital product has to keep catching up with new user preferences, demands and the influences of competition.
The idea is to create and release a product that is viable – something usable that can be released within the mandated deadline and meets end-user needs to a substantial extent. Invariably, the software will require changes over time, and end-users are well aware of this.
The initial release will never be complete but needs to be viable. It needs to function well enough to give users the functions they are primarily looking for.
2. Have the right tests been run on the right devices?
It is not enough to know that a product has been tested before releasing it. One must know what has been tested and how it has been tested before confidently pushing new code to production.
- How much of the software has been tested?
- Has anything been left untested and why?
Understanding test coverage is a pivotal part of pre-release verification. One must ensure that all features have been tested – and that the results are as expected.
Awareness of the coverage of your test cases also makes it easy to predict post-release issues. Inadequately tested features are almost always guaranteed to cause problems. Read more about how to write good test cases.
Needless to say, there is nothing better than testing software on real devices and browsers. Use a service like BrowserStack which offers access to 2000+ cloud-based real devices and browsers for manual and automated testing. Eliminate all possible bugs by testing software in real user conditions, so that you know exactly what the user experiences when interacting with the software.
3. Is there a rollback plan?
If a feature causes issues in production, how can it be addressed? Is it possible to disable the feature? Or, will this require another round of deployment? If so, how long will it take? What will be the resulting downtime of the feature?
It is wise to expect that some kind of issue will crop up once the software is being accessed by the end-users. Have a mechanism in place that can address points of malfunction quickly and effectively. Without doing so, issue resolution becomes a long-drawn, effort-intensive process that wastes developers’ time and fosters unsatisfactory user experience.
4. Is there enough documentation in place?
This is a question that needs to be asked from the beginning of a software development project. However, it needs to be part of the software release checklist as well.
Every project involves multiple individuals – developers, testers, designers and other stakeholders. Without documentation on all fronts, it is not possible for all members of a team to be on the same page. This is true for both manual testing and automated selenium testing. Since the success of the agile method depends heavily on collaboration, accurate and adequate documentation is a make-or-break element in a project.
However, the need for documentation does not end with product release. User feedback needs to be collected so that the product can be improved accordingly. The process of implementing every change needs to be documented so that any flaws in execution can be identified and addressed quickly.
While this may seem like an excess of digital paperwork, documentation is always worth the effort. It helps teams progress faster by reducing any conflicts or miscommunication that may arise from not have the complete picture of a project.
5. Is the support team ready?
Is the support team well educated on the software being released? Do they know what users are most likely to have trouble with? Are they aware of the software’s capabilities so that they can manage user expectations? Do they have access to help documentation that they can offer the customer?
Any software release must be accompanied by a competent support team. Customer-facing issues can be reduced to a large extent if the support team is trained and they clearly understand how an application works. Generic replies do very little to satisfy customers. In fact, an ill-equipped support team goes a long way in harming brand and product credibility.
Ensure that the support team is aware of any features that may raise questions. Set them up for success by giving them as much relevant information as possible. This does not simply ensure a successful release cycle but also prevents developers and product managers from dealing with repetitive questions later.
The nature of a software release cycle determines the nature of the software. Streamline the process so that both dev teams and customers get what they want with lower effort. A software release checklist helps to ship products faster because every release is verified for maximum viability through a reliable pipeline. Include the questions discussed above in every release checklist, so that every release offers the best possible user experience.