Immunizing Your Software against a Defect Pandemic
When your released software is infected with problems, there is the possibility of a pandemic defect, with the potential for a wide geographic area and an exceptionally high proportion of the end-user population affected.
At times software can be asymptomatic, showing no outward signs of issues. It can seemingly function as expected, though masking hidden issues until the problem is recognized. Other times a cluster of confirmed afflicted end-users occurs rapidly. The problem is worsened when there is community spreading of the problem, when a large customer of your software infects its entire client base, becoming a super spreader.
A company’s software development team may rely on herd immunity for defect resolution. This is when a significant percentage of the end-user population has encountered an issue, the defect is reported, and the problem is corrected by patches and updates. Basically, the company is relying on its customer base to detect issues, which is an unhealthy practice. Customer perception is that future releases may also be infected with defects.
When pandemic defects do occur, steps can be taken to mitigate the problem in the early stages of the first wave by attempting to “flatten the curve” of issues being reported, hopefully preventing a second wave.
- After customer zero reports the problem, perform data tracking by identifying all the affected users and gathering statistics
- If possible, quarantine the users and have them stop using the product or functions that are causing the issues until the software can be “inoculated” with a resolution or by providing workarounds
- Create a CDC—a Center for Defect Correction—by identifying essential workers and establishing a task force responsible for resolving the problem
- Test the software verifying the issue’s resolution and check for any ill side effects before an update is distributed
Future pandemic defects can be mitigated and their spread can be greatly reduced by exercising a few practical steps:
- Development and test teams need to practice self-monitoring of their processes prior to a software release, ensuring they are following proper protocols
- Obtain qualified professional employees and train them appropriately in the latest use of tools and modern software development techniques that abide by the appropriate guidelines
- Use phased releases: In phase 1, perform in-house clinical trials on volunteer end-users, “taking the temperature” of the room by keeping close contact with the volunteers and screening, tracking, and tracing the results they obtain. In phase 2, distribute the software to a select few end-users and gather their feedback as well before making the final decision to proceed to phase 3, the full release to the general population
Preventing pandemic defects is the goal by taking precautions to vaccinate your software. However, you can’t predict everything; if pandemic defects do happen, follow these practices to help slow the spread of the issue and treat the software for a full recovery.