All Topics  
Development stage

 
Development Stage

   Email Print
   Bookmark   Link






 

Development stage



 
 
A software release is the distribution (whether public or private) of an initial or upgraded version of a computer software
Computer software

Computer software, or just software is a general term used to describe a collection of computer programs, Algorithm and Software documentation that perform some tasks on a computer system....
 product. The software engineers
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
 and company doing the work decide on how to distribute the program or system, or changes to that program or system. Software patches
Patch (computing)

A patch is a small piece of software designed to fix problems with or update a computer program or its supporting data. This includes fixing computer bug, replacing graphics and improving the usability or performance....
 are one method of distributing the changes, as are downloads and compact discs. The software release life cycle is composed of different stages that describe the stability of a piece of software and the amount of development
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
 it requires before final release.






Discussion
Ask a question about 'Development stage'
Start a new discussion about 'Development stage'
Answer questions from other users
Full Discussion Forum



Encyclopedia


A software release is the distribution (whether public or private) of an initial or upgraded version of a computer software
Computer software

Computer software, or just software is a general term used to describe a collection of computer programs, Algorithm and Software documentation that perform some tasks on a computer system....
 product. The software engineers
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
 and company doing the work decide on how to distribute the program or system, or changes to that program or system. Software patches
Patch (computing)

A patch is a small piece of software designed to fix problems with or update a computer program or its supporting data. This includes fixing computer bug, replacing graphics and improving the usability or performance....
 are one method of distributing the changes, as are downloads and compact discs. The software release life cycle is composed of different stages that describe the stability of a piece of software and the amount of development
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
 it requires before final release. Each major version of a product usually goes through a stage when new features are added, or the alpha stage; a stage when it is being actively debugged, or the beta stage; and finally a stage when all important bugs have been removed, or the stable stage. Intermediate stages may also be recognized. The stages may be formally announced and regulated by the project'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.

Software release stages


Pre-alpha

Pre-alpha stage consists of the period of time from the start of the development phase until Alpha release (or any other stage that comes next, in case developers opt to have no Alpha release). Sometimes a build
Software build

In the field of computer software, the term software build refers either to the process of converting source code files into standalone software artifact that can be run on a computer, or the result of doing so....
 known as pre-alpha is issued before the release of an alpha or beta, as developers need to see how features work in action as the development process proceeds. In contrast to alpha and beta versions, the pre-alpha is not feature complete
Feature complete

A feature complete version of a software is not yet final, but contains all intended functionality of the final version.Usually a feature complete software still has to undergo testing and bug fixing as well performance or stability enhancing before it can go to Release_candidate#Release_candidate and finally Release_candidate#Gold_or_gener...
. When it is used, it refers to all activities performed during the software project prior to software testing
Software testing

Software Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test , with respect to the context in which it is intended to operate....
. These activities can include requirements analysis
Requirements analysis

Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various Stakeholder , such as beneficiaries or users....
, software design
Software design

Software design is a process of problem-solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution....
, software development
Software development

Software development is the set of activities that results in software products. Software development may include research, new development, modification, reuse, re-engineering, maintenance, or any other activities that result in software products....
 and unit testing.

In typical open source
Open source

Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
 development, there are several types of pre-alpha versions. Milestone versions include specific sets of functions and are released as soon as the functionality is complete. Nightly builds are versions that are usually automatically checked out from the revision control
Revision control

Revision control is the management of multiple revisions of the same unit of information. It is most commonly used in engineering and software development to manage ongoing development of digital documents like application source code, art resources such as blueprints or electronic models, and other projects that may be worked on by a team o...
 system and built, typically over night; these versions allow the testers to test the recently implemented functionality immediately, and find the new bugs.

Alpha

The alpha build of the software is the build to the internal software testers
Software testing

Software Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test , with respect to the context in which it is intended to operate....
, that is, people different from the software engineers
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
, sometimes to the public, but usually internal to the organization or community that develops the software. In a rush to market, more and more companies are engaging external customers or value-chain partners in their alpha testing phase. This allows more extensive usability testing during the alpha phase.

In the first phase of testing, developers generally test the software using white box techniques
White box testing

White box testing uses an internal perspective of the system to design test cases based on internal structure. It requires programming skills to identify all paths through the software....
. Additional validation is then performed using black box
Black box testing

Black box testing takes an external perspective of the test object to derive test cases. These tests can be functional or non-functional, though usually functional....
 or grey box techniques, by another dedicated testing team
Software testing

Software Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test , with respect to the context in which it is intended to operate....
, sometimes concurrently. Moving to black box testing inside the organization is known as alpha release.

In software testing terminology alpha testing is done by the client in the presence of the tester or developers and the test environment is not open for the end user.

The Beta testing is done by the end user and the test environment is open.

Beta

'Beta' is a nickname
Nickname

A nickname is a descriptive name given in place of or in addition to the official name of a person, place or thing. Another class of nickname is the familiar or truncated form of the proper name, such as Bob, Bobby, Rob, Robbie, and Bert for Robert, more properly called a short name....
 for software which has passed the alpha testing stage of development and has been released to users for software testing
Software testing

Software Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test , with respect to the context in which it is intended to operate....
 before its official release. Beta testing allows the software to undergo usability testing
Usability testing

Usability testing is a technique used to evaluate a product by testing it on users. This can be seen as an irreplaceable usability practice, since it gives direct input on how real users use the system....
 with users who provide feedback
Feedback

Feedback describes the situation when output from an event or phenomenon in the past will influence the same event/phenomenon in the present or future....
, so that any malfunctions
Software bug

A software bug is an error, flaw, mistake, failure, or fault in a computer program that prevents it from behaving as intended . Most bugs arise from mistakes and errors made by people in either a program's source code or its software architecture, and a few are caused by compilers producing incorrect code....
 these users find in the software can be reported to the developers
Software developer

A software developer is a person or organization concerned with facets of the software development process wider than design and coding, a somewhat broader scope of computer programming or a specialty of project manager including some aspects of Software product management....
 and fixed. Beta software can be unstable and could cause crashes or data loss.

A 'beta version' is the first version released outside the organization or community that develops the software, for the purpose of evaluation or real-world black/grey-box testing
Software testing

Software Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test , with respect to the context in which it is intended to operate....
. The process of delivering a beta version to the users is called beta release. Beta level software generally includes all features, but may also include known issues and bugs of a less serious variety.

The users of a beta version are called beta testers. They are usually customers or prospective customers of the organization that develops the software. They receive the software for free or for a reduced price, but act as free testers.

Beta versions test the supportability of the product, the go-to-market messaging (while recruiting Beta customers), the manufacturability of the product, and the overall channel flow or channel reach.

Beta version software is likely to be useful for internal demonstrations and previews to select customers, but unstable and not yet ready for release. Some developers refer to this stage as a preview, a prototype, a technical preview (TP) or as an early access. As the second major stage in the release lifecycle, following the alpha stage, it is named after the Greek letter beta
Beta (letter)

Beta is the second letter of the Greek alphabet. In the system of Greek numerals it has a value of 2. It was derived from the Phoenician alphabet Beth ....
, the second letter in the Greek alphabet
Greek alphabet

The Greek alphabet is a set of twenty-four letters that has been used to write the Greek language since the late 9th century BC or early 8th century BCE....
.

Often this stage begins when the developers announce a feature freeze
Freeze (software engineering)

In software engineering, a freeze is a point in time in the development process after which the rules for making changes to the source code or related resources become more strict, or the period during which those rules are applied....
 on the product, indicating that no more feature requirements will be accepted for this version of the product. Only software issues, or bugs and unimplemented features will be addressed.

Developers release either a closed beta or an open beta; closed beta versions are released to a select group of individuals for a user test, while open betas are to a larger community group, usually the general public. The testers report any bugs that they found and sometimes minor features they would like to see in the final version.

An example of a major public beta test was when Microsoft
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
 started releasing regular Windows Vista
Windows Vista

Windows Vista is one member in a family of operating systems developed by Microsoft for use on personal computers, including home and business Desktop computer, laptops, Tablet PCs, and media center PCs....
 community technology previews (CTPs) to beta testers in January 2005. The first of these was build 5219. Subsequent CTPs introduced most of the planned features, as well as a number of changes to the user interface, based in large part on feedback from beta testers. Windows Vista was deemed feature complete
Feature complete

A feature complete version of a software is not yet final, but contains all intended functionality of the final version.Usually a feature complete software still has to undergo testing and bug fixing as well performance or stability enhancing before it can go to Release_candidate#Release_candidate and finally Release_candidate#Gold_or_gener...
 with the release of build 5308 CTP, released on February 22, 2006, and much of the remainder of work between that build and the final release of the product focused on stability, performance, application and driver compatibility, and documentation.

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
Freeware

Freeware is computer software that is available for use at no cost or for an optional fee. Freeware is different from shareware; the latter obliges the user to pay ....
 or open-source
Open source

Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
 betas release them to the general public while proprietary betas go to a relatively small group of testers. Recipients of highly proprietary betas may have to sign a non-disclosure agreement
Non-disclosure agreement

A non-disclosure agreement , also known as a confidentiality agreement, confidential disclosure agreement , proprietary information agreement , or secrecy agreement, is a law contract between at least two party that outlines confidential materials or knowledge the parties wish to share with one another for certain pur...
. A release is called feature complete when the product team agrees that functional requirements of the system are met and no new features will be put into the release, but significant software bugs may still exist. Companies with a formal software process will tend to enter the beta period with a list of known bugs that must be fixed to exit the beta period, and some companies make this list available to customers and testers.

As the Internet has allowed for rapid and inexpensive distribution of software, companies have begun to take a more flexible approach to use of the word "beta". Netscape Communications was infamous for releasing alpha level versions of its Netscape web browser
Netscape (web browser)

Netscape 7 was a series of proprietary software cross-platform Internet suites created by Netscape Communications Corporation and then in-house by America Online to continue the Netscape series after Netscape 6....
 to the public and calling them “beta” releases. 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 . It noted that Gmail
Gmail

Gmail is a free Post Office Protocol and Internet Message Access Protocol webmail service provided by Google. In the United Kingdom and Germany it is officially called Google Mail....
 and Google News
Google News

Google News is an automated news aggregator provided by Google Inc. The initial idea, StoryRank?related to Google's PageRank formula?was developed by Krishna Bharat in 2001, the Principal Research Scientist of Google....
, for example, had been in beta for a long period of time and were not expected to drop the beta status despite the fact that they were widely used; however, Google News did leave beta in January 2006. This technique may also allow a developer to delay offering full support and/or responsibility for remaining issues. In the context of Web 2.0
Web 2.0

The term "Web 2.0" refers to a perceived second generation of web development and web design, that aims to facilitate communication, secure information sharing, interoperability, and collaboration on the World Wide Web....
, people even talk of perpetual beta
Perpetual beta

Perpetual beta is a term used to describe Computer software or a System#Systems in information and computer science which never leaves the development stage of Software_release_cycle#Beta....
s to signify that some software is meant to stay in beta state. Also, "beta" is sometimes used to indicate something more like a release candidate such as the Halo 3 public beta.

Origin of "alpha" and "beta"
The term beta test comes from an IBM hardware product test
IBM Product Test

IBM Product Test was a group level organization for testing of IBM hardware and software products as part of the product development process....
 convention, dating back to punched card tabulating and sorting machines. Hardware first went through an alpha test for preliminary functionality and small scale manufacturing feasibility. Then came a beta test, by people or groups other than the developers, to verify that the hardware correctly performed the functions it was supposed to, and could be manufactured at scales necessary for the market. And finally, a c test to verify safety. With the advent of programmable computers and the first shareable software programs, IBM used the same terminology for testing software. As other companies began developing software for their own use, and for distribution to others, the terminology stuck—and now is part of our common vocabulary.

Release candidate

The term release candidate refers to a version with potential to be a final product, ready to release unless fatal bugs emerge. In this stage of product stabilization (read QA cycle), all product features have been designed, coded and tested through one or more Alpha cycles with no known showstopper
Showstopper

'Showstopper' may refer to:* Show Stopper, the debut single by the R&B group and Making the Band 3 winners Danity Kane* ...
-class bugs.

During the 1990s, Apple Inc. used the term “golden master
Golden master

A Golden Master is a reference model in hardware/software development.A simplified example goes like this: When you create a new processor, you don't do the development in silicon....
” for its release candidates, and the final golden master was the general availability release. Other terms include gamma (and occasionally also delta, and perhaps other Greek letters) for versions that are substantially complete, but still under test, and omega or zenith for final testing of versions that are believed to be bug-free, and may go into production at any time. (gamma
Gamma

Gamma is the third letter of the Greek alphabet. In the system of Greek numerals it has a value of 3. It was derived from the Phoenician alphabet Gimel ....
, delta
Delta (letter)

Delta is the fourth letter of the Greek alphabet. In the system of Greek numerals it has a value of 4. It was derived from the Phoenician alphabet Dalet , but in the Ancient Greek language, it represented a voiced dental plosive ....
, and omega
Omega

Omega is the 24th and last letter of the Greek alphabet. In the Greek numerals it has a value of 800. The word literally means "great O" , as opposed to Omicron, which means "little O" ....
 are, respectively, the third, fourth, and last letters of the Greek alphabet
Greek alphabet

The Greek alphabet is a set of twenty-four letters that has been used to write the Greek language since the late 9th century BC or early 8th century BCE....
.) 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.

A release is called code complete when the development team agrees that no entirely new source code will be added to this release. There may still be source code changes to fix defects. There may still be changes to documentation and data files, and to the code for test cases or utilities. New code may be added in a future release.

RTM

The term “release to manufacturing” or “release to marketing” (both abbreviated RTM) - also known as "going gold" - is used to indicate that the software has met a defined quality level and is ready for mass distribution either by electronic means or by physical media. The term does NOT define the delivery mechanism, it only states that the quality is sufficient for mass distribution. The deliverable from the engineering organization is usually in the form of a gold master CD used for duplication or to produce the image for the web.

In most if not all cases, RTM happens prior to general availability (GA) where the product is released to the public.

GA

General availability (GA) is the point where all necessary commercialization activities have been completed and the software has been made available to the general market either via the web or physical media.

Commercialization activities could include but are not limited to the availability of media world wide via dispersed distribution centers, marketing collateral is completed and available in as many languages as deemed necessary for the target market, etc. The time between RTM and GA can be from a week to months in some cases before a generally available release can be declared because of the time needed to complete all commercialization activities required by GA.

Box copy
A box copy is a physical version of the final product, printed on a disc that is complete with disc graphic art. This term is used mostly by review
Review

A review is an evaluation of a publication, such as a film, video game, musical composition, book, or a piece of hardware like a car, appliance, or computer....
ers to differentiate from other forms of the released product (e.g., a downloaded copy, or a gold master burned on a generic disc). A box copy does not necessarily come enclosed in a box; it refers to the disc itself. In other words, we can say we get something tangible.

Web release
A web release is a means of software delivery that utilizes the Internet for distribution. No physical media are produced in this type of release mechanism by the manufacturer.

Production or live release

The production, live version 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 live 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
Code signing

Code signing is the process of digitally digital signature executables and scripting language to confirm the software author and guarantee that the code has not been altered or corrupted since it was signed by use of a Cryptographic hash function....
 (used to allow end-users to verify that code has not been modified since the release). The expression that a software product "has gone live" means that the code has been completed and is ready for distribution. Other terms for the live version include: live master, live release, or live build. In some areas of software development the live release is referred to as a gold release; this seems to be confined mainly to game software.

Stable or unstable

In open source
Open source

Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
 programming, version numbers or the terms stable and unstable commonly distinguish the stage of development. The term stable refers to a version of software that is substantially identical to a version that has been through enough real-world testing to reasonably assume there are no showstopper problems, or at least that any problems are known and documented. On the other hand, the term unstable does not necessarily mean that there are problems - rather, that enhancements or changes have been made to the software that have not undergone rigorous testing and that more changes are expected to be imminent. Users of such software are advised to use the stable version if it meets their needs, and to only use the unstable version if the new functionality is of interest that exceeds the risk that something might simply not work right.

In the Linux kernel
Linux kernel

The Linux kernel is an operating system kernel used by a family of Unix-like operating systems. The term Linux distribution is used to refer to the various operating systems that run on top of the Linux Kernel....
, version numbers are composed of three numbers, separated by a period
Full stop

A full stop or period , is the punctuation mark commonly placed at the end of several different types of Sentence s in English language and many other languages....
. Between versions 1.0.0 and 2.6.x, stable releases had an even
Even

GeneralEven may refer to:* Even , a Scandinavian male personal name .* Even , an ethnic group from Siberia and Russian Far East**Even language, a language spoken by the Evens...
 second number and unstable release an odd
Odd

Odd may refer to:* In everyday language: the quality of being unpaired, occasional, strange or unusual, or a person who is viewed as Eccentricity ...
 one. As of Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
 2.6.x, the even or odd status of the second number no longer holds any significance. The practice of using even and odd numbers to indicate the stability of a release has been used by other open and closed source projects.

End of life

End-of-life (EOL). Sometimes software companies stop selling or supporting their software products (e.g., not releasing new patches). At this point the product will be said to be in the status of "legacy", "vintage" or "end of life." For instance, on August 15, 2007, Apple announced that AppleWorks
AppleWorks

AppleWorks refers to two different office suite products, both of which are now discontinued. Originally, AppleWorks was an integrated software package for the Apple II platform, released in 1984 by Apple Computer....
 reached "end-of-life status." This is also true of the Netscape
Netscape

Netscape Communications is a United States computer services company, best known for its web browser. The browser was once dominant in terms of Usage share of web browsers, but lost most of that share to Internet Explorer during the browser wars....
 internet browser which stopped being supported in March 2008.

See also

  • Release engineering
    Release engineering

    Release engineering, frequently abbreviated as "releng", is a sub-discipline in software engineering concerned with the compiler, assembly, and delivery of source code into finished products or other software components....
  • Release management
    Release Management

    Release management defines the mechanisms of building and releasing software, and is included as a component of the Service Support Set in ITIL....
  • Rolling release
    Rolling release

    In software development, a rolling release approach refers to a continuously developing software system, as opposed to one with version that must be reinstalled over the previous versions....
  • Software maintenance
    Software maintenance

    Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment ....
  • Software testing
    Software testing

    Software Testing is an empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test , with respect to the context in which it is intended to operate....
  • Software versioning
  • Software deployment
    Software deployment

    Software deployment is all of the activities that make a software system available for use.The general deployment process consists of several interrelated activities with possible transitions between them....


External links

  • .
  • [https://pide.dev.java.net/glossary-std.html Java Standard Terms].
  • .
  • .
  • .