Software Development life cycle (SDLC) is an established and standard framework or approach, used in carrying out the development of a software product, in multiple stages. The ultimate goal behind the development of a software product is to release and deliver the software product to its intended or targeted users or the client.
Similar to the development life cycle, there exist a software release cycle, which ensures the timely release of a software application from its coding to final release, in a well defined manner. The basic purpose of defining a software cycle is to assess the stability of a software product under development, at each level or stage of a lifecycle and accordingly developing the product for the next subsequent level, until it finally releases.
Generally, a software release lifecycle consists of five stages viz. pre-alpha, alpha, Beta, Release candidate, general availability. However, a project management or business team may visualize and define the software release lifecycle in their own way, depending upon their approach.
Let's go through each of these stages, to understand the concept of the software release life cycle.
All the activities done prior to the alpha release of a software product, falls in the phase of pre-alpha stage. These activities are nothing, but the development process of a software product, consisting of several milestone, where each milestone reflects the achievement of successful implementation and execution of the certain specific tasks.
Generally, the activities covered under pre-alpha phase comprises of requirement gathering & analysis, designing, development and unit testing.
This phase of pre-alpha stage consist of gathering of requirement and thereafter their analysis, feasibility study, etc. to consider and validate the implementation of these requirements in a software product. The Project Manager, Business Manager, developers and the client or the owner are accountable for the gathering & analysis of the requirements, so that they can make out a well define plan, to carry out the software development process.
Requirement gathering and analysis phase is followed by the designing phase, where the output of the former phase works as the resource for the latter. A design team is deployed, to work out and comes out with the structural view or may be called blueprint of a product, incorporating the specified requirements. This design helps the development team in visualizing and understanding an overview of a product, along with the need of certain hardware or software requirements, required in its development.
Designing phase is followed by the implementation or the development phase. In development phase, a development team, equipped with all sort of resources such as SRS, software design, etc. and backed up by the design and other teams, carries out the task of development process and implementing specified requirements and specifications in the software product.
Each unit developed by the developers, is evaluated by the developer itself, to assess the compliance of specified requirements and specifications by each individual unit, along with their stability, for going through the integration process and facing further testing techniques.
In pre-alpha stage, pre-alpha versions of a software product are being released such as milestone versions, where each milestone reflects the achievement in incorporating certain or specific functionalities or requirements in a product.
It is one of first type of testing performed on a software product, after its initial development. Generally, alpha testing is an in-house testing process, performed within the organization by the testers or the developers.
During alpha testing, firstly white box testing techniques are performed by the developers, followed by the black box testing and gray box testing by the testing team.
The alpha released product, is generally of unstable nature, and may not be able to sustain further testing. Further, an alpha version of a software does not ensures the compliance of all specified requirements but covers the majority of requirements.
The software product is deployed on the customer site, for getting tested by the intended users or the client in the real environment. It may be seen as the last testing phase, before the product is released in the market.
Basically, a software product is handed over to the targeted users, just before its release, so as to assess the usability and performance features of a software product.
Further, a beta phase may consist of two levels.
Open Beta: In open beta, a product is released and open to public, for testing the software application, in a real environment.
Closed Beta: In closed beta, product is being handed over to limited and specific users, to perform beta testing over a software product.
It is considered as the beta version of a software product, and may be seen as the final product to be released, unless no serious issues or defects arise. At this moment of time, it is ensured that the product, which has gone through multiple beta cycles, does not needs any further improvement and no more changes, is required in the product. Thus, the version is potentially seen as the final product, to be ready for the market release.
The final stable software product is released and is made available in the market for its selling and purchase, after completing all marketing formalities and commercialization activities, which may include security and compliance testing, along with the nationwide or the worldwide availability of the product.