Writing computer software is an iterative business. You build a basic version, test it, try to fix what isn’t working, add further features, and repeat—a process that is likely to continue for as long as your software continues to be used, given the impossibility of ironing out every potential error experienced by every potential user. As an old programmers’ joke has it: What’s the similarity between computer programming and sex? One mistake and you have to support it for the rest of your life.
Naturally, a specialized vocabulary has emerged around this process. Although much of it consists simply of jargon or oblique acronyms, it has also gifted the world a number of more universal labels for the stage of a product’s development: from its “pre-alpha” and “alpha” beginnings on through “beta” to the eventual “golden master” edition.
All of these terms are thought to have their roots in the hardware development process used by technology firm IBM as early as the 1950s, when stages labeled A, B, and C marked a product’s development and testing. As the company and its peers moved from hardware to software development, the pre-alpha stage became increasingly important: that is, the research and initial design of a product.137
An alpha product traditionally marks the first stage at which testing can begin, with beta marking the phase at which all the main features have been added, but many bugs still need to be identified and addressed. The process of beta testing a product typically involves both a “closed” phase (when it is tested internally by the company producing it, or by a select outside group) and an “open” phase (when the public and ordinary users try a working version).
Finally, a golden master edition results from this process: a term named after the practice of producing the final versions of physical media such as vinyl records using a “master” copy literally made out of gold, so that it could be used as an unreactive template from which all subsequent copies would be created.
Today, it’s increasingly common for online software to be publicly released in its beta phase and to remain in beta for many months or even years. Sometimes referred to as “perpetual beta,” this embodies the fact that the testing and fine-tuning of a digital product can represent a potentially endless undertaking.
While frustrating for some, this is hardly surprising, given that a product developed by a few dozen programmers but used online by many millions of people is likely to demand an immense amount of maintenance, updating, and iteration. Indeed, the very notion of finished versions of some software is fast becoming outdated, with one of the worst fates that can befall a program being the status of “abandonware”: something for which no further updates or support will ever be produced.