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. While there are many advantages seen in adopting Agile, we do see many challenges while practicing in reality. 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. Release management and planning the next product release has been a well acknowledged challenge particularly in market driven product development.
Release Planning is the process of planning the next release of the product, it helps Product Management to predict, forecast and make realistic commitments to the stakeholders. A consistent release planning process enables organizations plan how much of business value can be delivered within the available capacity. Predictability plays a very vital role in enabling organizations to live up to the expectations of the customers, helps them gain trust and develop long term relationships.
Every release will have a set of “Mandatory Requirements –MR” i.e the Must Have features, that have to be completed before doing a release. The key parameters that influence the release plan are the business value drivers, schedule and budget constraints, available capacity, technical feasibility of proposed implementations, previous release metrics, inputs from business development group who work very closely with the target customer segment, etc
The release backlog is usually categorized into different buckets like New Features, Technical Debt, Production Support and infrastructure for the ease of managing. Organizations have their own guidelines for defining the size of these buckets and in general depend on duration of the release, team capacity and prior release metrics. Another important factor that might influence the type and size of these bucket is the long term strategy and goal of the Organization and “UX research” can be one such bucket.
Release management is managing the release to ensure it is on track. As part of execution of planned items in the release, the release plan that was envisaged in the beginning can change depending on various inputs from customers, internal stakeholders, market conditions etc. and the same is reflected in the mandatory requirements. Once the release is planned, having periodic health check points for assessing the health and progress is indeed very vital for a successful release. The Product Owners can use some checklist of metrics against which they evaluate if the individual teams are “Ready for release”. This list can have points like how many items are done, items scheduled for upcoming iterations, items completed but yet to be verified, high Priority regression items-open and closed, defects from new functionality etc.
Release Health Checks
The Product Owners regularly meet to check the Release Health based on how the teams are progressing, and take necessary actions to adjust the backlog across the teams if needed. They can take a call to re-prioritize and make changes to the individual team backlogs so that overall Release Mandatory requirements are met. Reports are generated periodically based on the release checklist that give information of the team’s current state with respect to these checklist items. These reports show whether the teams are doing good, or behind schedule or ahead of schedule, they give an indication of how the release progress is happening. These reports are analysed to review items completed and yet to be done, individual team velocities and accordingly the teams marked as Red, Yellow or Green. Thus the product management will be able to assess the overall Release Heath at the release backlog level by doing such periodic release health reviews/checks.
In spite of planning a release considering all the above factors and trying to manage it by doing periodic health checks, there are instances of not being able to meet the release commitments. Organizations are forced to either cut down on the scope or extend the timelines and end up in running into the same problems as we have seen traditionally, trying to fire fight the last few iterations just before the release to meet the release commitments particularly when the release cycle is more than 1 year due to the inherent dependencies as involvement of many teams.
Release Mangement: Best Practices
Based on my experience, here are some of the good release management practices that have yielded reasonably good results to the satisfaction of the customers with good quality.
I have seen that release planning is found to be very effective when the entire release is split into smaller chunks as it gives a better leverage for focussing and managing the backlogs. This also eases the dependency management across teams as the focal point is now reduced drastically from a year to a quarter or even much lesser timescale that depends on the organization. The feedback cycle for the release is also reduced enabling to inspect and adapt at a faster rate. Planning in short horizon helps reducing the unknowns at a much faster rate.
Product Owners in Sync
Very high level of coordination is required among the Product Owners for the release management to happen effectively. Unless there is good coherence and synchronization between the Product Owners the 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 environment, and in such cases the Product management group could execute a spike sprint involving few subject matter experts to understand the complexity and feasibility of the upcoming release. In such situations enough bandwidth has to be reserved for such spikes.
Release management is pretty tough and needs to be planned well, especially in organizations that have a legacy of complex products. However by carefully monitoring and adopting some good release management techniques organizations can overcome this hurdle. I have seen organisations doing releases successfully within time and with good quality by early identification and resolution of issues. And finally I would like to conclude by saying that the benefits for sure outweigh the challenges if release is planned, managed and executed well.