Companies that develop multiple products often struggle with how to ensure that they all work together to find solutions. It’s also difficult to find how to get the deliverables from various products together into a working release. A project manager focuses on the planning and execution of a project, which is typically functionality from one product and is busy getting their portion of the release (e.g., project functionality from one product) ready. A product manager focuses on the product roadmap, defines the product vision, collects requirements from customers into the product backlog, and allocates requirements to projects. So who handles a release that wrangles together multiple project deliverables from multiple products that define a solution or complex release? The answer is the release manager.
In order to better understand the role of the release manager, we must understand the context in which this role works. We must understand the difference between a project and a release. For the sake of this article, a release is the set of deliverables associated from one or more products (and their projects therein) that are tested and made available to the public. Some releases have no external dependencies whose deliverables are derived from one product’s project. Other releases are comprised of deliverables from multiple products’ projects, products that must all work together at some level in order for each part to work effectively, that form a solution. This means that there may be multiple products that should be delivered together in order for the bundle to work well together as one cohesive unit. The field of release management and the role release manager focuses on the release. In particular, not just any release type but those that are comprised of deliverables from multiple products’ projects that must come together in unison, otherwise known as a solution release.
Release Management
A release manager is a role within the field of release management field. 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. More importantly, release management is the field that focuses on coordinating pieces from various product deliverables that must come together to work as an integrated release package (aka, solution). Release management helps coordinate product timelines ensuring they are planned and managed so that future dependencies can come together in a timely manner.
Release management becomes particularly effective for companies that have multiple products that must work together as a solution. When a release is dependent on external factors to make a release successful, then release management should be applied to make the co-dependencies align. This opens up the visibility into delivery 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 (aka, solution 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 is to ensure that there is lead-time for all of the co-dependent pieces to be developed together, tested, and operate effectively prior to the release date.
Comparing Roles in More Detail
Let us take a moment to take a look in more detail at the comparable roles and responsibilities of the release manager with the project manager and product manager. It should be clear that some of the tasks associated with these roles may overlap. For example, on a single project release of one product, the project manager may play the role of the release manager. However, as soon as there are dependencies of a product to other products and they must work well together and even be released together, then someone must be made available to manage all of these interdependencies across products and their projects therein.
It is important that all roles work well together. As an example, a product manager needs to ensure the project manager has everything needed to get the release into production, while the release manager will work with the project manager to ensure that all dependent pieces from other products are ready to support the release in build, test, and production. To get a better view of how the roles work together, I have provided a high-level diagram indicating the primary focus areas of each role.
Project Manager
The primary role of a project manager is to focus on the tasks to develop a specific set of project deliverables for one product (e.g., singular release). This role establishes and manages the project plan. The deliverables are defined by the requirements and defects that make up a release and the product direction prescribed by the product manager. The project manager should be intimately involved on the project’s change control board (CCB) and aware of any change of scope and direction to their project. The project manager role should manage the internal dependencies of a project and ensure any internal parallel development efforts are integrated effectively as appropriate (for both build and run time).
In many cases, there are other products in which this release is dependent. The project manager is aware of the dependencies and must ensure that the dependency product is ready for them to test against, but it is the release manager role that focuses on ensuring the dependencies are available according to the schedule of their release. In a more agile environment, the ScrumMaster would play this role but use sprint planning to manage changes that are provided by the product manager (often called the product owner in agile).
Product Manager
The primary role of a product manager is to focus on the product direction by establishing the product roadmap and vision. This role solicits requirements from customers to help define the release deliverables. In a more agile model, this role will continuously solicit requirements from customers to ensure that the release is an accumulation of deliverables that the customer actually wants (based on changing customer needs and market conditions). This includes identifying customers who can validate their needs either in an end-of-sprint review (if they are more agile based) or in a user acceptance test (UAT) if they are more waterfall-based. In addition, the product manager will focus on acquiring the appropriate funding for product development and participate in the marketing of the product.
In a more waterfall lifecycle, the product manager is not involved in the day-to-day tasks of a project release but in a more agile lifecycle, the product manager would participate more regularly in activities such as sprint planning and end-of-sprint review. The product manager may be involved in the high-level coordination of dependent product items with other product managers to get buy-in to ensure the other products will be available.
Release Engineer
Because the role of release engineer often gets confused with the role of the release manager, a special focus on the release engineer role is included. The release engineer is primarily focused on the build, package, and release responsibilities focused around project deliverables. The release engineer role is fairly technical and focused on utilizing compilers, continuous build technologies, development technology build mechanisms, the ability to establish build processes, understand parallel and continuous build concepts and how to implement them. They also tend to be focused on packaging the build deliverables and migrating them through the remainder of the release lifecycle into production. This includes the ability to automate the process of packaging of the build deliverables, database deliverables, and other deliverables needed to establish a run-time testing environment into a release package or the skills to perform this task manually and the ability to automate the migration process to production. So you can see that the release engineer role is fairly technical and focused on the back-end of a project lifecycle getting the deliverables into production.
In some cases, a separate role of build engineer will focus on building and packaging a release and a release engineer focuses on migrating the release through test and into production whether that is installing the deliverables onto a production server or creating the master media by which duplicate copies can be made available.
Release Manager
The primary role of a release manager is to focus on the details of bringing together the various interdependent products to satisfy a complex or solution based release. This role focuses on coordinating the requirements, testing, and release schedules of other products so that they are available to work with any specific product that comprise that release. The release manager will participate on any change control boards (CCB) of the waterfall type projects and in sprint planning or scrum of scrums on agile type projects in order to be aware of what changes are occurring across the release (and projects therein). This role may also communicate any challenges or impacts to external products in relation to managing the internal dependencies. In general, this role focuses more on the details of the broad release and should participate in or lead any release related meetings.
The key is to the release manager role is to identify all items that need to be coordinated, managed, scheduled, and planned across a release. The responsibilities may include (but not limited to):
- Ensuring requirements are clear across dependent project streams with a release
- Ensuring requirements that impact other projects (internal and external) are submitted to the other products’ requirements lists or backlogs
- Tracking changes to requirements and communicate impacts to externally dependent product releases
- Ensuring the tasks associated with parallel and external deliverables are included in the project plan (build time, run time, merging, etc.)
- Ensuring items released in a parallel branch are merged and tested into this release as appropriate
- Ensuring technical guides and training are developed for the external functionality that must work together for this release
- Managing the deployment of the deliverables to the test environment specifically ensuring that the external dependent items are available at test runtime
- Managing the deployment of deliverables into production (e.g., ensuring all internal and external pieces are collected for distribution and the distribution occurs to the correct group of potential users and targeted locations)
- Validating the release notes
- Validating the release is operating as expected
Some of these tasks can be played by other roles (e.g., project manager or product manager), but it is with the hat of a release manager.
Summary
The good news is that there are aspects of release management already being handled today by other roles. What can make this more effective in the future is to implement a release management strategy for the more complex or solution-based releases within your company that have co-dependencies to other products whether internal or external. This should include introducing the notions of release management as a super discipline that provides context to the other engineering disciplines. It acts as a mechanism for coordinating co-dependent pieces from across various products that must come together to work as an integrated release or solution package and as a planning and communication method to ensure future dependent product timelines come together to meet the needs of the release schedule. Finally, it is recommended to define the specific roles within this space so the responsibilities of wrangling a release are clear and no important responsibilities are forgotten. This will promote more effective release management within your organization that better ensures your multiple products and solutions work more effectively together.
References
1) "Release Management, Super Discipline", by Mario Moreira, CM Crossroads, September 2008
2) "CM Roles, Responsibilities, Skills, and Job Descriptions", by Mario Moreira, CM Crossroads, December 2005