Software Release Life Cycle
The software release life cycle is a model that describes the stages of development and maturity for computer programs.
Every software development project progresses almost identically through a series of stages before it becomes fit to release to the general public. These stages combined are known as the software release life cycle (SRLC).
Understanding the SRLC helps you keep your product management efforts organized throughout the evolution of a software release. To help you get familiar with the concept, this article explains what the software release life cycle is and covers its various stages.
Table of contents
What is the Software Release Life Cycle?
The software release life cycle is the sequence of stages through which the development of a single software release evolves from the pre-alpha phase into production.
The SRLC is a linear process because it concerns individual releases. Each release has a definite point of inception (when planning for the release begins) and a definite conclusion (when it reaches end-of-life). The linearity of the SRLC contrasts with the software development life cycle. which progresses in a loop, from planning to analysis to design to implementation to maintenance, and back again.
SRLC and SDLC might seem like competing approaches to guide software from creation to distribution to end-users. However, while they do somewhat overlap, they are more complementary than conflicting, because:
- Knowledge of the software release life cycle helps you manage and streamline the process of developing individual releases, whereas,
- Knowledge of the software development life cycle helps you allocate development resources to maximize utilization at every step (even between releases). This helps you to maintain high quality while minimizing costs.
Stages of the Software Release Life Cycle
The software release life cycle is often divided into two major periods. Each period has its own set of stages in the process. The first of these two periods is the testing and development phase.
The Testing and Development Period
The testing and development period is where most of the creation of the software product happens. Many implementations of the SRLC divide this period into pre-alpha, alpha, beta, and release candidate phases. Each of these phases includes a period of development followed by a testing regimen designed to evaluate the results.
The pre-alpha stage includes everything that occurs before formal testing begins. Activities such as requirements analyses, software design, programming, and unit testing all take place during the pre-alpha.
The product often only features the primary functionality at this stage in the release life cycle. The software might also contain more bugs during this stage than at any other point in the process. This unfinished state often limits pre-alpha testing to developers and in-house testers, because of their familiarity with the product’s quirks.
The alpha stage of the software release life cycle marks the start of formal testing, which is often still limited to developers and in-house testers. When limited to an in-house scope, testers typically employ white-box techniques. In these, they have a view of the internal workings of the software and can design test cases in code.
There is a growing trend toward opening alpha testing to the public, especially in game development. In this approach, the team releases the product to NDA-bound end-users who are willing to try the software despite its buggy state and report any issues.
Development of the product often occurs before and alongside testing at this stage. After the development team determines the product to be feature complete, a feature freeze marks the end of the alpha phase.
The beta stage focuses on fixing bugs and issues that remain after the first two phases. After resolving the most impactful of these issues, the team can push testing to a broader set of end-users. At this point in the software release life cycle, the product may look and feel like its final release-ready form. -only with bugs and performance issues that can impact usability.
So long as developers manage to stay on top of squashing bugs, beta testing also provides an opportunity to build interest in the product before its release. As users try out new features and like them, they spread the word and provide free and organic marketing. Even before the product goes to market.
As the number of bugs beta testers report starts to diminish, the SRLC progresses to identifying a release candidate.
Finalizing a release candidate (RC) is the final stage of the testing and development period. The RC is a pre-release version of the product that has the potential to become the final stable release.
Ideally, the RC no longer receives any new source code, but production-level testing can sometimes pick up errors. Fixing these problems and certifying the RC progresses the release life cycle to its final stage.
The Release Period
Finalizing a release candidate is the final stage of the testing and development period. The RC is a pre-release version of the product that will become the final, stable release.
The stages of the release period aren’t as distinct as the phases of the testing and development period. In SaaS and web distribution, these stages often meld together into one continuous process or have no clear periods of transition.
Release to Manufacturing
Also known as “going gold,” release to manufacturing (RTM) covers the period in which the distribution-ready software gets packaged for delivery. Depending on the distribution method chosen, this can take the form of mass-producing copies on disc, preparing an image for online installation, or deploying the software to a production-level SaaS platform.
How long a piece of software stays in the RTM phase varies depending on the steps needed for a successful release to the target market. These steps differ from company to company and from project to project, but they can include activities such as:
- Security tests,
- Localisation of content to different languages,
- Arranging licenses for international distribution,
- And third-party certification.
Once the software is available for purchase or subscription by its target audience, it moves into the period of general availability.
A software product is generally available when all necessary commercialization activities have been completed and the company has announced that it will be selling or licensing its finished work.
Marketing is the predominant activity related to the release during the general availability phase. The focus is on achieving commercial success to recoup the resources expended since the cycle began and cover the support needed after production release.
Also called live release, production release marks the end of the life cycle. It occurs when the final product reaches customers. Unlike the software development life cycle, SRLC does not repeat with a fresh round of development. Instead, new software release life cycles start for each future release, whether patches or feature expansions.
While a piece of software is in the production release phase, customer support plays a crucial role in its success. Critical points for support during this phase include:
- Onboarding new users and helping them get the most out of the product,
- Identifying issues and missing features and assigning these to SRLCs,
- And managing the deprecation and end of support for the release as it reaches end-of-life.
Guide Your Product to a Smooth Release
The software release life cycle might seem straightforward and mundane, but a clear understanding of it can help you organize your product management efforts. By focusing on the activities that matter most for each stage of the process, you can guide your product more smoothly to a timely and successful release.