Development stage

From Wikipedia, the free encyclopedia.

(Redirected from Beta version)
Jump to: navigation, search

In software engineering, development stage terminology expresses how the development of a piece of software has progressed and how much further development it may require. Each major version of a product usually goes through a stage when new features are added (alpha stage), then a stage when it is actively debugged (beta stage), and finally a stage when all important bugs have been removed (stable stage). Intermediate stages may also be recognized. The stages may be formally announced and regulated by the product's developers, but sometimes the terms are used informally to describe the state of a product. Conventionally, code names are often used by many companies for versions prior to the release of the product, though the actual product and features are rarely secret.

Contents

Pre-alpha

Sometimes a build known as pre-alpha is issued, before the release of an alpha or beta. In contrast to alpha and beta versions, the pre-alpha is usually not "feature complete". At this stage designers are still determining exactly what functionalities the product should have. Such builds can also be called development releases or nightly builds.

Alpha

The alpha version of a product still awaits full debugging or full implementation of all its functionality, but satisfies a majority of the requirements. It often lacks features promised in the final release, but demonstrates the feasibility and basic structure of the software. The name is derived from Alpha, the first letter in the Greek alphabet.

Beta

A beta version or beta release usually represents the first feature complete version of a computer program or other product, likely to be unstable but useful for internal demonstrations and previews to select customers. Some developers refer to this stage as a preview, as a technical preview (TP) or as an early access. Often this stage begins when the developers announce a feature freeze on the product, indicating that no more features will be added to this version of the product and only software issues, or bugs, will be removed. Beta versions stand 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. The testers report any bugs that they found and sometimes minor features they would like to see in the final version.

When a beta becomes available to the general public it is often widely used by the technologically savvy and those familiar with previous versions as though it were the finished product. Usually developers of freeware or open-source betas release them to the general public while proprietary betas go to a relatively small group of testers. In February 2005, ZDNet published an article about the recent phenomenon of a beta version often staying for years and being used as if it were in production-level [1]. It notes that Gmail and Google News, for example, have been in beta for a long period of time and are not expected to drop the beta status despite the fact that they have been widely used. This technique may also allow a developer to delay offering full support and/or responsibility for remaining issues. Recipients of highly proprietary betas may have to sign a non-disclosure agreement.

As the second major stage in the development cycle, following the alpha stage, it is named after the Greek letter beta, the second letter in the Greek alphabet.

Release candidate

The term release candidate refers to a final product, ready to release unless fatal bugs emerge. In this stage, the product features all designed functionalities and no known showstopper class bugs. Microsoft Corporation often uses the term release candidate. Other terms include gamma (and occasionally also delta, and perhaps even more Greek letters) for versions that are substantially complete, but still under test, and omega for final testing of versions that are believed to be bug-free, and may go into production at any time. Gamma, delta, and omega are, respectively, the third, fourth, and last letters of the Greek alphabet. Some users disparagingly refer to release candidates and even final "point oh" releases as "gamma test" software, suggesting that the developer has chosen to use its customers to test software that is not truly ready for general release. Often, beta testers, if privately selected, will be billed for using the release candidate as though it were a finished product.

Gold/general availability release

The gold or general availability release version of a product is the final version of a particular product. It is typically almost identical to the final release candidate, with only last-minute bugs fixed. A gold release is considered to be very stable and relatively bug-free with a quality suitable for wide distribution and use by end users. In commercial software releases, this version may also be signed (used to allow end-users to verify that code has not been modified since the release). The expression that a software product "has gone gold" means that the code has been completed and "is being mass-produced and will be for sale soon."

The term gold anecdotally refers to the use of "gold master disc" which was commonly used to send the final version to manufacturers who use it to create the mass-produced retail copies. It may in this context be a hold-over from music production. In some cases, however, the master disc is still actually made of gold, for both aesthetic appeal and resistance to corrosion.

Microsoft and others use the term "RTM" (release to manufacturing) to refer to this version (as in, "Build 2600 is the Windows XP RTM release").

Stable/unstable

In open source programming, version numbers or the terms stable and unstable commonly distinguish the stage of development. In the Linux kernel, version numbers take the form of three numbers, separated by a decimal point. An even second number represents a stable release and an odd second number represents an unstable release. The practice of using even and odd numbers to indicate the stability of a release has been used by many other open source projects.

See also

External links

Personal tools