The software release life cycle, in software engineering, is the set of progress states of the computer application creation project, to identify how much progress has been made and how much remains until the end. Each major version of a product usually goes through a stage where new features are added (alpha stage), then a stage where bugs are actively removed (beta stage), and finally a stage where all major bugs have been removed (stable stage). The intermediate stages can also be recognized. Stages can be formally announced and regulated by product developers, but the terms are sometimes used informally to describe the status of a product. Typically many companies use common code names for versions before a product launch, even if the product and features are not secret.
Alpha
Pre-alpha is the first stage of writing a computer program.
---
Alpha is the first complete version of the program, which is sent to the verifiers to test it. Some development teams use the term alpha informally to refer to a phase where a product is still unstable, still waiting for bugs to be eliminated or for the full implementation of all its functionality, but it satisfies most of the requirements. The name is derived from alpha, the first letter in the Greek alphabet.
Beta
A beta generally represents the first full version of a computer program or other product, which may be unstable but useful to be considered a preview or a technical preview (TP). This stage often begins when developers announce a freeze on product features, stating that no more features will be added to this release and that only small edits will be made or bug fixes will be fixed. Beta versions are at an intermediate step in the full development cycle. Developers release them to a group of beta testers (sometimes the general public) for a user test. Testers divulge any bugs they find and features, sometimes minor, that they would like to see in the final version.
When a beta version becomes available to the general public, it is often extensively tested by the technologically savvy or familiar with older versions, as if the product were finished. Generally, developers of beta versions of free or open-source software release them to the general public, while proprietary beta versions go to a relatively small group of testers. In February 2005, ZDNet published an article about the recent phenomenon of beta versions that often remained for years and were used as if they were at the production level. Gmail, like Google News, for example, was in beta for a very long period (five years). This technique may also allow a developer to delay offering full support or responsibility for remaining edits. Recipients of highly proprietary betas may have to sign a non-disclosure agreement. As this is the second stage in the development cycle that follows the alpha stage, this is named the next Greek letter beta.
Final candidate version (RC)
A release candidate comprises a product that is ready to be released as a final version unless errors prevent it from doing so. In this phase, the product implements all the functions of the design and is free of any errors that suppose a deadlock in the development. Many development companies frequently use this term. Other related terms include gamma, delta (and perhaps more Greek letters) for versions that are virtually complete but still in testing; and omega for versions that are believed to be error-free and are in the final testing process. Gamma, delta and omega are, respectively, the third, fourth and last letters of the Greek alphabet.
Considered very stable and relatively error-free with a quality suitable for wide distribution and used by end-users. In commercial versions, it can also be signed (used for end-users to verify that the code has not been changed since its exit). The expression that a product is golden means that the code has been completed and that it is being mass-produced and will be on sale soon.
General availability version (RTM, release to manufacturing)
The general availability (also called gold) version of a product is its final version. It is usually almost identical to the final candidate version, with only last-minute corrections. This version is considered very stable and relatively error-free with a quality suitable for wide distribution and use by end-users. In commercial versions, it can also be signed (used for end-users to verify that the code has not been changed since its exit). The expression that a product is golden means that the code has been completed and that it is being mass-produced and will be on sale soon.
The term gold refers anecdotally to the use of the gold master disc that was frequently used to send the final version to manufacturers who use it to produce the retail copies. This can be a legacy of music production. In some cases, however, the master disc is made of gold, both for aesthetic appearance and corrosion resistance.
Microsoft and others use the term distribution to manufacturers (RTM or release to manufacturing) to refer to this version (for commercial products such as Windows 7, they would refer to it as “build 7600 is chosen as Windows 7 RTM”), and web distribution (RTW or release to Web) for freely downloadable products.
Stable/unstable
In open-source programming, version numbers, or the terms stable and unstable, usually, distinguish the phases of development. In the past, the Linux kernel used the version number to denote whether a version was stable or unstable. In effect, the versions were made up of four numbers, separated by a period. An odd figure in the second version number indicated an unstable version. Today this convention is no longer used, and all versions are stable regardless of version number. In practice, the use of even and odd numbers to indicate the stability of a product has been used by many other free software projects.
This concept also applies to software packaged in some Linux distributions such as Debian, so that there is a branch or set of packages considered stable and another branch considered unstable. This last branch provides versions of programs that are newer than the stable ones but that are not as tested.