The software release life cycle is the sequence of stages a piece of software passes through, from first build to end of life. These are the stage names used on this wiki.
Stages
| Stage | Meaning |
|---|---|
| Pre-alpha | Anything before feature freeze - design, coding, unit testing. |
| Alpha | Feature complete is not expected. Tested internally, usually by the developers. Known to be unstable. |
| Beta | Feature complete, but not bug complete. Given to testers outside the team; a closed beta goes to invited testers, an open beta to anyone. |
| Release candidate | Beta with no known blocking defects. Ships as the release unless something new is found. |
| RTM | Release to manufacturing. The build handed to the customer or to production. |
| GA | General availability. The build published to everyone, through whatever channel it ships in. |
| Support | Defect fixes and service releases against a shipped version. |
| End of life | No further fixes. The version is no longer supported. |
Freezes
- Feature freeze - no new features accepted; only defect fixes.
- Code freeze - no changes at all except those fixing a blocking defect.
Practice
- Do not call a build beta until it is feature complete - it makes the remaining
defect count meaningless.
- A release candidate that needs a change becomes a new release candidate, not a
patched one.
- Tag every build that leaves the team, so a defect report can be tied to a
specific tree.