We won’t be entirely wrong if we stated that the Agile is now becoming the defacto. Several organizations have adopted Agile as a part of their development culture after its advantages were widely known. Even though, Agile has found many takers there may be a few challenges when it comes to taking this process up in reality. Let us consider for the sake of this article, an organization that works with several complex environments and enumerable products being handled by a plethora of teams in their own way. In such a case next product planning and release management may become a challenging proposition.
What is Release Planning?
Release planning is primarily the process of planning and scheduling the next release of a product. This operation is extremely helpful as it aids product management by helping in forecasts and predictions there helping the development team to make realistic commitments to parties involved in the cycle. A homogenous release planning process gives organizations the bandwidth to plan a business value according to the given capacity and deliver it basis the stipulated timelines. This predictability that comes from planning empowers the organizations to deliver as per the expectations set by the client and empowers them to gain customer’s trust and form credibility for a long-term association.
Incidentally, every release cycle comes with its own set of “Mandatory Requirements –MR” also known as the Must Have features. They are the pre-requisites that need to be complete before doing a release. A release plan is driven by a few key parameters which include the business value drivers, restrictions imposed due to schedule and budget, available capacity, the technical feasibility of operations, factors influencing previous releases, inputs from a business development team that works closely with the client and understands their requirements.
It is important to categorise the release backlog into various subsets like New Features, Technical Debt, Production Support and infrastructure to ease out the operations and management process. Organizations mostly use their discretion to define the size of each of these categories that may depend on several factors that release duration, team capacity and previously set release metrics. Also, the long-term strategy of the release plan coupled with the organizational goal and the UX research can influence the size of each category. Release management is a key feature of a Release plan. Read on to know more about release management.
What is Release Management?
Release management primarily is to manage the release to ensure that release cycle is on track. In order to carry out the execution process effectively, there must be margins included right at the very inception of the release plan to accommodate few alterations that come by the dependencies on various inputs from customers, internal stakeholders, market conditions etc. and the prerequisites reflected in the mandatory requirements. It is critical to have periodic health checks to assess the quality and progress of the release cycle. Every organization can customise their checklists and metrics against which they can evaluate every time an individual team is ready with the delivery. The checklist can also constitute the categories that are completed, scheduled and upcoming iterations, completed items pending for verification, high Priority regression items-open and closed, new functionality defects among others.
Why are Release Health Checks necessary?
During the Release Cycle, the product owners should meet to check on the overall progress of the cycle along with the comprehensive release health and take necessary actions to clear out the bottlenecks across the teams if needed. The project owners can request for a reprioritization of the tasks and accordingly make changes to the individual team backlogs to readjust the release plan such that the Release Mandatory requirements are effectively taken care of. They must also analyse the reports generated periodically as per the release checklist to understand that status of the each team’s’ progress of the tasks according to the checklist. The periodic reports are important to keep a constant check on a release schedule. Reports help to identify the teams that are running behind or ahead of schedule and give an indication of how the release is actually progressing. These reports are extremely critical to analyse and review the tasks completed or yet to be achieved, how quickly each team is functioning and thereby color coding them as Rd, Yellow, Green can help the managers recognize the problem areas and take action accordingly. This process of periodic release health reviews/checks enables the product management to exercise greater control on the release cycle and better assess the overall Release Heath at the release backlog level.
However, we often notice that in spite of planning a release effectively, even after considering the factors above and doing periodic health checks, there are plenty of instances where we fail to meet the release commitments. This leaves the organization in a place where they are forced to either cut down on the scope or extend the timelines. That becomes a never-ending cycle of problems that have been prevailing traditionally which leads to firefighting their way to the finish line. Especially, the need of the last few iterations just before the release to meet the release commitments. This particularly takes place in a situation where the release cycle is longer than 1 year because of the inherent dependencies and the involvement of several teams.
So, What are the Best Practices for Release Management?
We have all faced situations similar to above some time or the other in our lives. In order to avoid being an embarrassment in front of the client, we can follow a few simple tricks that have yielded good results in the past to the satisfaction of the customers and delivering good quality.
Brainstorm to Collect Better Ideas
Before we go on to launch a product, the organization needs to collect enough inputs and suggestions. Accumulate the best ideas within the organization repository so that it becomes easily referenceable for further discussions. Collect all relevant background before actually planning a new feature like customer interviews, market research, competitor insights. Such in-depth research is very helpful to increase the feature’s high-level value.
Chalk Out a Roadmap
Before the actual process begins, it is important to analyse the input that will be required to get the project out and the time it will take to get it released. Appoint the team that will take the ownership to design, build, market and supports the feature release. Prioritize the deliverables and assign the importance level to each task. Include all these parameters on a vision board for easy reference.
Put Wheels in Motion
Once the project has all the processes listed it becomes easy to begin with high-level tasks. The important thing is to include the requirements as a part of the overall release planning so developers can easily reference them, and others can get more detail on the project if they need it. Issue regular feedback processes with the cycle so as to get the maximum out of the delivery process.
Split Project into Smaller Chunks
It has been observed in the past that release planning is more effective when the entire release has been split into smaller chunks. This allows more control on the release cycle and gives management better leverage to focus and manage the backlog. Smaller release chunks also make it easier to handle dependencies across teams as the area of concentration is now reduced drastically from a year to a quarter or less of that timescale which makes communication simpler and effective. Additionally, the feedback process is quicker as the feedback cycle is dramatically reduced facilitating an inspect and adapt at a faster rate. Therefore, planning on a shorter timespan brings down the unidentified problems and helps resolving them at a faster rate.
Synchronization of Product Owners
It is extremely critical that product owners are highly synchronized for an effective release management. Proper coordination and cohesiveness between the product owners are important for a smooth transition in a release cycle. It is particularly important in organizations with complex interdependencies in projects.
Whenever there is a complex product development environment, many unidentified/ unforeseen problems often crop up. In order to combat this scenario Product management group should execute a spike sprint involving few subject matter experts. This helps them to understand the complexities and feasibility of the upcoming release. So while planning a release, the management must make sure to accommodate enough bandwidth for such spikes.
Release management comes with its own set of requirements and therefore needs to be planned well especially for the organizations that come with a tradition of complex products. However, there are certain techniques and quality monitoring that can help organizations overcome this obstacle. Organisations can make successful releases and deliver a quality product within a stipulated timeline by early identification and resolution of issues.
Some teams can get by without agile planning at the release level. However, on the other hand, some level of visibility is required by management at the software release management level (i.e., progress, status, change from initial software development plan, etc.), in such a case release-level planning and management is invaluable. We often see, as more information, functionality and system flow is revealed, business needs evolve, and priorities alter, the overall make-up of the release often changes. Although anticipated, the steady evolution of release management cycle needs to be communicated to all appropriate stakeholders time to time to ensure minimal iterations, quality delivery in a shorter timespan.