To launch a successful software product, we need to learn and
identify the different stages and maturity level that a product reaches during
the development and quality assurance cycles. This can be done by adhering to a product release
lifecycle and setting gated stages that can signal when to move to the next
stage. Let’s take a look at this in more detail.
Product Release Lifecycle
This lifecycle, also often referred to as Product Version Stages,
is the process to identify key milestones and quality checkpoints/stages during
the development of the product which enables a team to move closer to releasing
a product.
The process involves several stages that would progressively
show increased quality and product maturity. This is achieved by delivering
features and/or testable components early and often (agile). This in turns leads
to better Quality Assurance (QA) life cycles.
Pre-Alpha Stage
In this stage, the product core features are made available for
initial testing. This can include login, navigation and some core functionality
that is testable. At this stage, the product is very immature and full of issues/bugs.
Those issues need to be resolved to reach
quality level that can allow the product to unlock the next stage.
Alpha Stage
In the Alpha Stage, extended features are implemented. The quality
has increased due to the initial testing. The team can focus on feature testing
for the actual product. The testing cycles are more extensive as cross-components
and integration points are validated. The goal in this stage is to have a level
of features and quality that show what the end-product would be.
Beta Stage
This stage is the true indicator of the level of maturity of the product. This is a technology preview stage. At this stage, there is a feature lock (no more enhancements). The product is made available for user-acceptance testing with an external audience, possible customers, or user group. The goal is to get feedback from the field, identify defects, unknown issues that could put the release at risk. There is also a chance to identify additional enhancements that could make the product better and learn from possible user adoption problems. This stage can iterate multiple times until a successful Beta enables the product to move to a Release Candidate stage.
Release Candidate (RC) Stage
In this stage, all the user feedback and identified defects
have been addressed. The product quality and stability are high (silver quality).
This is the Code Complete stage at which point all the features have been
tested and validated. The only additional changes would be fixes/showstopper issues.
At this stage, a selected set of customers (possible from the Beta group) can
start using the product privately with the goal to identify any issues and/or unknown
use cases.
Production Release Stage
After a successful Release Candidate stage, the product has
golden quality and high stability. This unlocks the Production Release stage. The
product is ready for General Availability (GA) and commercialization. This is
now a product that can officially be launched into the market.
Product Launch
The product is now on the customer’s hands. At this point, the
product goes into learning/maintenance mode in which additional issues, change
request (CR) and wanted features would arise. Those items are reviewed, and the
ones that are approved are processed and deployed as possible patches (defects)
or upgrades (CR).
Summary
In additional to understanding software development life
cycles, it is very important to understand the product release lifecycle as
this enables us to track a product maturity and stability. It is also important
to understand that this is an ongoing process in which we need to continuously iterate
to make the product better. By following a process and trusting it, the percentage for a successful product increases.
Thanks for reading.