In the ever-growing complexity of dependencies amongst products at the build and run time level, there is the challenge of managing increasingly separate items that must work together upon release. This is where the concepts, disciplines, roles, and responsibilities of release management help. Release management focuses on both the engineering disciplines that must bring a specific project release together along with the management of external dependencies across products that must accompany a release.
A key release management topic is to define the term “release”. For the sake of this article, a release is referred to as the baselined (and authorized) deliverables associated with a project that are tested and made available to the public. Some releases have no external dependencies. Others are super-releases and are comprised of deliverables (or releases) from multiple products that must all work together at some level in order for each part to effectively work.
When a release is dependent on other external factors to make it successful, then release management may be applied to make the co-dependencies more manageable. With that in mind, there are three primary aspects of release management, each of which may be considered for effective management of releases.
The first is that release management is a super discipline that combines the disciplines of requirements engineering (including requirements management), project management (e.g., project planning, project tracking and oversight, risk management), design, development, configuration management (CM) including change control, test (also referred to as QA or SQA), and release. Second, release management is a field that focuses on coordinating pieces from various product releases that must come together to work as an integrated release package. Finally, product timelines must be planned and managed so that future dependencies can come together. The Super Discipline of Release Management
The first consideration is to introduce release management as a super discipline or structure for the engineering disciplines that provides a model for establishing the context of how the disciplines work together. When considering the placement of tasks for such engineering disciplines as CM, project management, requirements engineering, and testing, it may be difficult to understand the big picture of the disciplines and how they inter-relate. By providing a context in the form of a lifecycle model from project startup through release, a context map of the process is created, thus providing easier understanding of the big picture of the release. A consistent problem with performing the various engineering discipline tasks is that there is a lack of a high-level model for understanding the context of one task with another and the attributes of each task. This is because many engineering disciplines work in a silo apart from the other disciplines.
Within a super discipline approach, the disciplines can more clearly work together to focus on the release of deliverables or functionality from requirements to production. For example, tasks in the early part of a project release such as identify requirements, estimate requirements, and approve requirements, can be associated with tasks toward the backend of the lifecycle, such as test product release tasks. In some of the requirements tasks, the test role can ensure that the requirements are clear enough to understand what needs to be tested and that estimates for testing the requirements are included.
The Coordination of Release Management
The second consideration is establishing that release management focuses on the coordination of a specific release to parallel internal releases (patch releases, future releases, variant releases, etc.) and co-dependent external product releases that must be in place to make a respective release a success. This opens up the visibility into development processes and reduces the silo effect so that parallel development and dependent product development have insight into requirements, timelines, and changes. While some releases are self-contained within the deliverables of a project, many releases need items from other products in order to work effectively (at either the build or run time). The coordination must begin as early as the requirements phase of the project release. This ensures that there is lead-time for all of the