Most of the time, people take the software they’re using for granted. When we open a program on our computer, we just expect it to work, and in most cases it does. What many software users don’t realize is how much effort goes into an end product that “just works.”
We’ve all heard stories in the news about major software releases gone awry. Usually, problems can be traced back to a failure during one of the seven stages of software release, each of which is important in making sure that a final release is relatively free of bugs and the dreaded error messages they bring.
Back when IBM was in its infancy, they began using Greek letters like alpha and beta for their software development. Eventually, this terminology carried over into the testing and development period for software. Now, the period consists of several stages.
First, the pre-alpha stage refers to anything done before actual software testing, including the development of the software. Then the alpha stage begins, usually all in-house, and with the finalizing of all the main features of the software. Next, the software moves to the beta stage, typically performed by a professional group of “beta testers” who scour the software for less common functional anomalies than the ones discovered in the alpha stage. At the same time, the software is tested to make sure it performs as designed on the myriad of browser/OS and/or mobile devices out in the wild. Once through beta, software enters the release candidate stage, ready to be a final product.
After the testing and development period, software moves on to the release period. The first stage of this period is the release to manufacturing, when software is prepared for the customer. The second is the general availability stage, consisting of marketing and commercialization activities. Finally, the software moves to the production or live release stage.
Still, any experienced software developer knows that their job doesn’t end with a live release. As more bugs and incompatibilities are discovered by a wider group of users, the developer must provide support—in the form of updates, bug fixes, and new releases—until the inevitable end of the product’s life.
Next time you use a well-designed and efficient piece of software, take a moment to think about just how much work goes into keeping it that way.