release
What is a release (software)?
A release is the distribution of the final version or the newest version of a software application. A software release may be public or private and generally signifies the unveiling of a new or upgraded version of the application.
In agile software development, a release is a deployable software package culminating in several iterations and can be made before the end of an iteration.
To be successful, software release management requires careful planning and execution, with customer-centric goals, time and budget efficiency, and minimal negative impact on customers.
Milestones in software release lifecycle
There are several stages of the software release lifecycle to consider when planning, including:
- Pre-alpha: This includes all the activities performed before testing software, such as designing and analyzing new features.
- Alpha: This is conducted by the software development team and is the beginning of software testing. Software developers conduct alpha testing using various techniques for the validation of software.
- Beta: Most of the major fixes are completed at the alpha stage. The new software version is made available to specific customers or testers at the beta stage, and additional feedback on any remaining bugs is collected and addressed. Further enhancements are made to the software based on stakeholder preferences.
- Release candidate: As the name suggests, this involves developing the final version of the software product for official market release to the end users.
Types of software releases
In addition to the various stages of the software lifecycle, there are also three types of software releases:
- Major release. A major release introduces wide-ranging changes to the existing software version, including new features to improve the user experience.
- Minor release. A minor release introduces small improvements to the software's functionality. However, changes or modifications are made to existing features instead of the release of new key features.
- Emergency fixes. As the name suggests, emergency fixes are reserved for urgent issues that may impact the user experience and require immediate attention.
What are the roles of a release management team?
The importance of release management as a critical part of a thoughtful and ultimately successful software development life cycle (SDLC) cannot be overstated.
Additionally, a dedicated release management team is vital to the success and prioritization of release management. The core functions of a release management team may vary slightly from company to company, but in general, teams contain the following roles:
- Project manager. This person coordinates with the team to ensure that the project is executed according to plan.
- Product manager. This role develops the product to meet the business's needs and increase customer satisfaction.
- Release manager. This person plans, schedules and optimizes the product's release.
The importance of the release manager
Today, a lot of release management processes and methodologies rely on automation. However, that shouldn't suggest that a release manager is no longer an integral component of successful release management.
Even with automation, the release manager must perform several tasks for new software releases, such as coordinating with team members, scoping, streamlining, release planning and scheduling.
Additionally, while project and product managers are critical to product development from a strategic goals perspective, the release manager brings a critical IT perspective to product planning and can help pinpoint any bottlenecks or oversights occurring on that side of the product.
See also: What is DevOps? The ultimate guide, Agile Project Management (APM) and application lifecycle management (ALM).