When a piece of software is released it has usually gone through different steps in its development. Software that was released, can be purchased, downloaded, or, generally used by customers. Usually these steps are:
- First Software development, Pre-alpha: The software is developed, and tested by the people who develop it.
- Alpha version: Usually the first version that can be tested by people outside the development team; Most of the functionality of the software is there; features may not be in this version. This version usually has many bugs.
- Beta version: This version is released to a number of testers (the public). It is generally usable, as a prototype. It is not quite ready for public release, but is ready for testing. It may still have bugs.
- Release candidate: This software is ready to be released; usually only very serious bugs stop the release of the product.