A discussion on release management would not be complete without a review of the roles. With that in mind, it is important to distinguish the role of the release manager from the roles of project manager, development manager, and product manager. It should be clear that many of the tasks associated with these roles may overlap. For example, on a small project a project manager may play the role of a development manager. On larger projects, a project manager may share development tasks with a development manager. Another example might be that while a product manager needs to ensure the project manager has everything needed to get the release into production, 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.
The primary role of a project manager is to focus on the tasks to develop a specific set of deliverables (the release). This role effectively establishes and manages the project plan. The deliverables are typically defined by the requirements or fixes 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 the 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 the release.
The primary role of a development manager is to focus on the tasks in the design and development phase of the project. This typically includes ensuring that the release is designed according to the architecture and ensuring the requirements are being developed and packaged into a product release. This role typically works for the project manager but is more involved with the details of the development phase of the project lifecycle. If the project is small, then the project manager is often the development manager. However, if the project is large, a development manager is often assigned to coordinate the design and development related tasks so that the project manager may more effectively manage the overall project. Also, with development being moved offshore, often times the project manager is at the primary site and the development manager is at the offshore site. In these cases, it is recommended that a development manager is assigned to manage the developers at the offshore site, but directly reporting to the project manager. With time zone and cultural differences, it can be very effective to have a local development manager at an offshore site to ensure the offshore development staff is working toward the project goals.