Software Release Management Process

From GM-RKB
Jump to navigation Jump to search

A Software Release Management Process is a business process starting a initial software development to its eventual software release.



References

2022

  • (Wikipedia, 2022) ⇒ https://en.wikipedia.org/wiki/Software_release_life_cycle Retrieved:2022-9-13.
    • A software release life cycle is the sum of the stages of development and maturity for a piece of computer software ranging from its initial development to its eventual release, and including updated versions of the released version to help improve software or fix software bugs still present in the software.

      There are several models for such a life cycle. A common method is that suggested by Microsoft, which divides software development into five phases: Pre-alpha, Alpha, Beta, Release candidate, and Stable. Pre-alpha refers to all activities performed during the software project before formal testing. Alpha phase generally begins when the software is feature complete but likely to contain several known or unknown bugs. Beta phase generally begins when the software is deemed feature complete, yet likely to contain a number of known or unknown bugs. Software in the production phase will generally have many more bugs in it than completed software, as well as speed/performance issues. The focus of beta testing is reducing impacts to users, often incorporating usability testing. The process of delivering a beta version to the users is called beta release and this is typically the first time that the software is available outside of the organization that developed it. Release candidates are versions of a software product which are nearly ready for release to manufacturing, but are still being tested for software bugs, which can be either resolved or worked around in these versions.

      A software release life cycle is used in a similar way to a device life cycle. For example, Apple Inc. follows a major release cycle for MacOS and iOS operating systems. Major releases are numbered in alternating major version and minor version pairs. For example, MacOS Catalina is version 10.15, and MacOS Mojave is version 10.14. Each release of an operating system is followed by one or more minor releases, which include security updates, bug fixes, and improvements to the operating system. For example, Apple released macOS Catalina 10.15.1 on 5 November 2019.

      Software release cycles are often categorized by release types and vary in scope. A release type out of scope of a software release life cycle is a beta release.

2021

  • https://www.lucidchart.com/blog/release-management-process
    • QUOTE: If your company has ever had to make a significant software change, chances are that you already appreciate the need for a reliable release management process. Release management oversees all the stages involved in a software release from development and testing to deployment. Release management is required anytime a new product or even changes to an existing product are requested. While release management processes may vary and should be customized for each organization, there are five primary steps to release management.

2017

  • https://engineering.indeedblog.com/blog/2017/03/automating-release-process/
    • QUOTE: Indeed’s rapid growth has presented us with many challenges, especially to our release process. Our largely manual process did not scale and became a bottleneck. We decided to develop a custom solution. The lessons we learned in automating our process can be applied to any rapidly growing organization that wants to maintain software quality and developer goodwill.
    • Our software release process has four main goals:
      • Understand which features are being released
      • Understand cross-product and cross-team dependencies
      • Quickly fix bugs in release candidates
      • Record release details for tracking, analysis, and repeatability
  • Our process ended up looking like this:


2023

  • (Wikipedia, 2023) ⇒ https://en.wikipedia.org/wiki/Software_release_life_cycle Retrieved:2023-7-11.
    • The software release life cycle is the process of developing, testing, and distributing a software product. It typically consists of several stages, such as pre-alpha, alpha, beta, and release candidate, before the final version, or "gold", is released to the public.

      Pre-alpha refers to the early stages of development, when the software is still being designed and built. Alpha testing is the first phase of formal testing, during which the software is tested internally using white-box techniques. Beta testing is the next phase, in which the software is tested by a larger group of users, typically outside of the organization that developed it. The beta phase is focused on reducing impacts on users and may include usability testing.

      After beta testing, the software may go through one or more release candidate phases, in which it is refined and tested further, before the final version is released.

      Some software, particularly in the internet and technology industries, is released in a perpetual beta state, meaning that it is continuously being updated and improved, and is never considered to be a fully completed product. This approach allows for a more agile development process and enables the software to be released and used by users earlier in the development cycle.