Reliability & Quality
Author: Ricardo de Rojas
Have you ever gone through a software upgrade and experienced downtime, the addition of new features that complicated your business or software bugs?
Early in my career, I worked for a software development company as a programmer. At any given time we would have six active versions of the software, not counting all the custom versions out there in the field.
If a bug was found, the fix had to be engineered into each active version. The bug would then need to be tested thoroughly in all six different versions. After testing the bug, the fix would be documented and packaged as an update to be deployed to all customers.
That version would then need to be updated on each customer’s system was running that version of the software. With more than 500 customers, just keeping track of which customer had which version of the software was a significant task. Time to deploy the bug fix would need to be scheduled for each individual customer. That bug fix would then have to be sent and installed on the customer’s own unique computer system.
The deployment would create blocks of time where the customer might be down and unable to use its system. Sometimes the bug fix required adding more steps or screens to address the problem. Changes to the software could mean changes to your business process and the way you use your computer system.
To complicate matters, new bugs might appear as the fix was deployed. Even with the best quality assurance and testing, it’s hard to test all the possible options and combinations of options used in the field—and so the whole process would begin again.
Because software in the cloud requires maintenance of only one version of the application, quality tends to improve over on-premises applications requiring maintenance of multiple versions of the software. Higher quality brings higher reliability and reduces the downtime and frustrations of software upgrades and bugs and on-premises software implementation inefficiencies.