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 co-dependent pieces to be developed together, tested, and operate effectively prior to the release date. The key is to identify all items that need to be coordinated, managed, scheduled, and planned. These may include (but are not limited to):
- Ensuring requirements that impact other projects (internal and external) are submitted to the other product release’s requirements list(s)
- Ensuring requirements from other products (internal and external) that impact this one are included in this product release’s requirements list
- 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 training and/or guides are developed for the external functionality that works with this release
- Managing the deployment of the deliverables to the test environment and ensuring that the external dependent items are also 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
The Planning of Future Releases
The third consideration for release management is establishing a long-term planning aspect to recognize future product dependencies. This includes a combination of understanding the product road map (which should be created by the product manager) and understanding the product road maps of the externally dependent products that your product must work with to make the release a success. There are numerous reasons for this because any change in a dependent product infrastructure or architecture may have a significant impact on the product.
As a product develops through its lifecycle, there may be many levels of dependencies which must be managed to ensure the co-dependent products are being developed with the product in mind and that the development of this product considers the other products. Some of the product level dependencies that may be considered (but not limited to) are the:
Architecture: Is the product evolving with the same type of architecture as other co-dependent products? Communication and collaboration between release managers or product managers of dependent products is recommended to ensure architectures are compatible. If an architecture or technology of a co-dependent product changes, this may have serious ramifications to the functionality of the product.
Deployment: If the installation process changes for a co-dependent product, then the product may be looking for runtime items in the incorrect location.
- Development: If the development platforms change and there are build-time dependencies, this will cause issues.
- Test and production: If a co-dependent product ends its support on your client platform, then issues will arise.