As many have learned, using Agile methods can provide solid business benefits including earlier return on investment, earlier detection of failed efforts, and more satisfied stakeholders. However, when applying Agile methods to product-lines (and projects therein), often there are dependencies on other products (and their projects), services, and organizations that may run in a more waterfall or hierarchical manner. If the Agile project and product therein are self-sustaining with no dependencies on outside factors, life can be quite good. But most of the Agile projects I have worked with or visited have varying degrees of dependencies on other products or services that run in a more waterfall or hierarchical manner.
How do you solve the problems which occur when the Agile world must interact with more traditional or hierarchical world? This can present a significant challenge to the Agile projects. One strategy to help solve this challenge is to introduce Release Management.
Basics of Release Management
Release Management is a super discipline that provides a context model to ensure that software engineering disciplines such as planning, requirements, CM, test, etc., work together to focus on the release. The release is the center piece of Release Management (or should be) where the activities or practices focus on getting the release one more step closer to production while maintaining a high-level of quality. Much like Release Management, Agile focuses on the release with as minimal effort and waste as possible.
Release Management also focuses on coordinating pieces of various product releases that must come together to work in an integrated release package. This ensures that dependencies and traceability are recognized and managed. This is particularly important if an Agile project is dependent on other products that may be managed in a more waterfall manner or services that are typically managed in a more hierarchical manner. In addition, Release Management ensures that product timelines are planned and managed so that future dependencies can come together when they are needed.
Allowing Release Management to help you track Dependencies
Release Management helps in dependency management across projects when there are release impacts. Essentially Release Management ensures that the right pieces are available when you need them. Some key areas where Release Management can help an Agile project track dependencies include:
oFacilitates the sharing of the agile project's requirements/stories to other projects/products that may be impacted.
oEnsures that other products' requirements/stories that impact the agile project are known by the agile project.
oCommunicates changes to requirements/stories to and from the other dependent products (and projects therein).
oEnsures that parallel and external deliverables arrive at the appropriate time (build time deliverables, run time deliverables, etc.)
The Product Manager and Release Manager Roles
The Product Manager (or Product Owner in Agile) should focus on product direction, continuous interaction with customers, prioritizing the functionality, becoming a champion of the methods and practices used, and removing roadblocks for the project team. Essentially, their focus is the product they own and manage. However, as is the case in most products, they may have dependencies to other products and services. This is where the role of Release Manager can significantly help the Product Manager.
The primary role of the Release Manager is to focus on the details of bringing together the various dependent components to satisfy the needs of a release. In an Agile world, this may include ensuring that requirements or stories that are needed for a successful release that are outside the control of the project are delivered to the Product Manager that owns the functionality and a timely delivery back to the agile project occurs. It may also include working with service organizations to ensure that the service is available when needed. And more significantly, the interdependent products and services are typically either waterfall or hierarchical in nature so the Release Manager can investigate ways to align the different methods and practices used across dependent products and services so that the release and future releases have an easier time integrating and providing for each other.
Additional tasks that a Release Manager will handle are: helping coordinate requirements/story sharing across product lines; coordinating integration, functional, and acceptance testing across product lines; participating on other product lines Change Control boards (for more traditional