The release of a new upgrade is typically a stressful time for software companies. It is all too easy to overlook some of the necessary steps or to fail to communicate something to another department. Developing an effective plan is a critical component of any release.
A successful plan integrates all departments, including engineering, quality assurance, marketing, sales, technical support, and training. Everyone must have a common goal and be moving in the same direction. In addition to developing the next release strategy, you must also plan for backward compatibility, effectively communicating with your customers ahead of time, minimizing and controlling bugs, ensuring users can install your product, and much more.
In our article, you will learn about:
- Why is it sometimes important to curb your enthusiasm and wait for the right time before your next software release?
- Our list of 4 major tips for planning a successful next software release.
When the software release rush isn’t in your favor?
Software update for the Nest ‘smart’ thermostat (owned by Google) went wrong in 2016 and left users in the cold. When the software update went wrong, it forced the device’s batteries to drain out, which led to dropping in the temperature. Customers were unable to heat their homes or use any amenities as a result.
Nest claimed that the problem was caused by a firmware update in December 4.0 and other issues such as old air filters or incompatible boilers. Later, it issued a 4.0.1 software release, which resolved the problem for 99.5 percent of the affected customers.
Each new release carries a high risk of failure or detection of serious defects by the end-user. These may cost us the trust of our customers. So, how can you avoid the losses that may result from the poor quality of a new version of your product?
#1 Automate the processes with CI/CD
Continuous Integration (CI) comes in handy here. It is a DevOps tool that starts the compilation process, unit tests, and any static analysis tools used after each commit/merge process. Any other quality-related tests that are automatable are also carried out. Whereas, Continuous Delivery (CD) allows you to automate the entire process from the development environment to the production environment. Learn about the best CI/CD practices here.
But what if you don’t have an experienced person on hand and/or don’t have enough budget or time to implement the entire CI and CD process?
Then you should put your money on people who will look after the quality of our product and will not be afraid to obstruct the next issue.
Working in an agile environment, the Product Owner always makes the final decision on the release of a new version. The individual should have a complete picture of the current situation in terms of work progress and product quality.
#2 Prioritize bug fixing list
As the product manager, go over the outstanding bug list with the testing team regularly. Examine the status of each open (unresolved) bug and comprehend the scenarios that led to their discovery.
If you find high-level bugs that need to be fixed, you can choose to postpone the release date. In the case of low-level/cosmetic bugs, you may wish to address them in a later release.
As an example, suppose you have the following bug list:
- There are no show-stopping bugs
- There are no high-level bugs
- Two moderate-level bugs
- The user is unable to access the address book without receiving an error message
- When a user imports an address, the “country” field is filled with unreadable characters
- 10 cosmetic/low-level bugs
In this case, you may decide that unreadable characters in the country field are an acceptable bug because the user can easily delete them. However, you acknowledge that you do not want to alert the user with an error message when they access the address book.
Place bugs in priority order, just as you did when you prioritize your product requirements, and make trade-offs as needed.
#3 Explain your test strategy
How will you carry out these tests? Go into as much detail as possible.
- What rules will your tests adhere to?
- What metrics will you collect and at what level?
- How many different configurations or environments are you going to put through their paces?
- Are there any special requirements or procedures that you must put to the test?
You must also be aware of the results of your test. To put it another way, what are the pass/fail criteria for each test?
Thus, lack of access to the test environment may cause issues with the release infrastructure. It is critical, paradoxically, to be able to roll back our changes and restore the previous version of the system. Sometimes the test environment, in which the system performed flawlessly, differs significantly from the production environment, where undesirable effects may occur, necessitating a rollback to the previous version of the system.
#4 Introduce and test new functionalities
Critical paths are equally important because they serve as the foundation for the entire process that our users will follow, and they should not encounter any gaps or problems along the way. It is also a significant risk to release a new version without thoroughly testing the functionality associated with this path.
Similarly, failure to provide end-users and the maintenance team with sufficient knowledge about new functionalities. Remember to notify stakeholders about the new functionalities that will be included in the next version so that they are not caught off guard by changes in the processes.
There are numerous reasons why your software should not be released as soon as possible and at any cost. It’s a good idea to weigh the “pros and cons.” Nonetheless, the development team must inform the Product Owner whether it is reasonable to proceed with the most recent software release launch. As a result, if you notice that something isn’t working properly, take the call to block a release. Also, proceed with the release when the Quality Assurance team approves the release as well.