It is not an exaggeration to say that Agile has become the default way of working, and organizations are seeing great benefits by making it part of their development culture. Although there are many advantages seen in adopting Agile, we do see many challenges in applying it in practice. To set the context for this article, let us consider organizations that work in complex environments with a legacy of products and hundreds of teams involved. Both release management and planning the next product release have been acknowledged challenges; that is especially true in market-driven product development.
Release planning is the process of planning the next release of the product. The planning helps product management predict, forecast, and make realistic commitments to the stakeholders. A consistent release planning process enables organizations to plan how much business value can be delivered within the available capacity. Predictability plays a vital role in enabling organizations to live up to the expectations of the customers, helping them gain trust, and developing long-term relationships.
Every release will have a set of mandatory requirements (MRs). That is, these are the must-have features that must be completed before releasing to the market. The key parameters that influence the release plan are the business value drivers, schedule and budget constraints, available capacity, the technical feasibility of proposed implementations, previous release metrics, and inputs from the business development group that works closely with the target customer segment.
The release backlog is usually categorized into different buckets, such as new features, technical debt, production support, and infrastructure, to ease the management of the release. Organizations have their own guidelines for defining the size of these buckets and, in general, depend on the duration of the release, team capacity, and prior release metrics. Other important factors that might influence the type and size of these buckets are the long-term strategy and goal of the organization, and user experience research can be one such bucket.
Release management is managing the release to ensure it is on track. As part of the execution of planned items in the release, the release plan that was envisioned in the beginning can change depending on various inputs from customers, internal stakeholders, or market conditions. The same is reflected in the mandatory requirements. After the release is planned, having periodic health checkpoints for assessing the health and progress is indeed vital for a successful release. The product owners can use some checklist of metrics against which they evaluate whether the individual teams are “ready for release.” This list can include such points as how many items are done, number of items scheduled for upcoming iterations, number of items completed but yet to be verified, high-priority regression items that are open and closed, defects from new functionality, and so on.
Product owners regularly meet to check the health of the release based on how the teams are progressing and to take necessary actions to adjust the backlog across the teams, if needed. They can take a call to reprioritize and make changes to the individual team backlogs so that the overall mandatory requirements of the release are met. Reports are generated periodically based on the release checklist that gives information on the team’s current state with respect to these checklist items. These reports show whether the teams are behind or ahead of schedule. They also give an indication of how the release is progressing. These reports are analyzed to identify completed and outstanding items as well as individual team velocities. The teams are marked as Red, Yellow, or Green accordingly. Thus product management will be able to assess the overall release health at the release backlog level by doing these periodic release health reviews or checks.
In spite of planning a release by considering all the above factors and trying to manage it by doing periodic health checks, there are instances when teams are unable to meet the release commitments. Organizations are forced to either reduce the scope or extend the time lines. However, they run into the same problems we have seen traditionally. They try to put out fires on the last few iterations just before the release to meet the release commitments, particularly when the release cycle is more than one year, because of the inherent interdependencies of many teams.
Based on my experience, here are some release management best practices that have yielded reasonably good results and good quality, to the satisfaction of customers. There could be many other practices.
I have observed that release planning is effective when the entire release is split into smaller chunks. The chunking gives it better leverage for focusing on and managing the backlogs. It also eases dependency management across teams, as the focal point is now reduced drastically from a year to a quarter, or even to a smaller timescale, depending on the organization. The feedback cycle for the release is also reduced, enabling the team to inspect and adapt at a faster rate. Planning with a short horizon helps reduce the unknowns at a much faster rate.
A high level of coordination is required among the product owners to effectively manage the release. Unless there is coherence and synchronization among product owners, release management will not be smooth, particularly in organizations with complex and interdependent projects.
We have also seen many unknowns coming up, especially in complex product development environments. In such cases, the product management group could execute a spike sprint that involves few subject matter experts to understand the complexity and feasibility of the upcoming release. To address such situations, enough bandwidth has to be reserved for these spikes.
Though it might be planned well, release management is tough, especially in organizations that have a legacy of complex products. However, by carefully monitoring and adopting some good release management techniques, we have seen organizations complete releases successfully within the committed time frame and with good quality, by early identification and resolution of issues.
I would like to conclude by saying that the benefits certainly outweigh the challenges if the release is planned, managed, and executed well.
Originally Posted by Madhavi Ledalla @ Scrum Alliance on 03 December 2015