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 the baselined (and authorized) deliverables associated with a project that are tested and made available to the public. Some releases have no external dependencies. Other releases 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 work effectively.
When a release is dependent on other external factors to make a release 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 & Oversight, Risk Management), Design, Development, Configuration Management (CM) including Change Control, Test (also referred to as QA or SQA), and Release. The second is that 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. And the third is that 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 thru release, this creates a context map of the process for 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 since 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 to establish 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