When you are working in an agile project or aim to use agile methods, agile release planning can be a critical technique for IT- and product-centric projects. Agile release planning is listed as a scheduling technique in the PMBOK (PMI’s Project Management Body of Knowledge). It is therefore also relevant for the Project Management Professional (PMP) certification.
Although this method is not necessarily a requirement in all genuine agile approaches, it is a good tool for release-driven agile and hybrid projects. This is because agile release planning can bridge the gap between more traditional project planning and agile or iterative product development.
Read on to learn more about this technique.
- How Do Releases Work?
- What Is a Release Plan?
- What is Agile Release Planning?
- What Is the Difference between Releases, Iterations, and Sprints?
How Do Releases Work?
A release typically consists of a set of features or software components that are developed and tested within a certain period of time. Upon development and testing, these features are deployed in one go as part of the release.
Releases can include features and enhancements of software as well as portions and pieces of larger development projects. For instance, the upgrade of a self-developed or off-the-shelf system can be broken up into different releases to ensure a smooth transition, the continuance of operations, and to avoid the risks inherent to ‘big bang’ migrations.
What Is a Release Plan?
The release plan is the document that sets out the scope, timeline, and, in some organizations, resources and cost connected with a release.
A release plan describes which system components are developed, tested, and implemented during a fixed amount of time (often between 1 and 6 months). The release plan can be seen as a prioritized list of features, similar to product backlogs in some agile frameworks. It usually requires some prioritization as it is often the case that not all system requirements can be covered by one single release. This is particularly true in more complex organizational and IT environments.
Besides newly developed features or products, a release plan can also include defect fixings and critical enhancements or changes to existing systems.
Release plans are often set up in advance for a couple of upcoming releases (e.g. plans for 4 releases within 1 year). This allows for the allocation of components to a target release based on the features’ individual priority, risk, and criticality. Usually, the plan for the nearest release is detailed while plans for subsequent releases tend to be rough. However, these plans are normally refined and becoming more detailed as the respective release comes closer. This is comparable to the concept of progressive elaboration in project management.
Release Plans in Traditional and Agile Projects
In traditional IT-related projects, release plans are a very common technique to manage software development and deployment.
Also, some agile frameworks make use of releases and release plans. In Extreme Programming (XP), for instance, a release consists of several iterations that are shorter and easier to manage as deliverables are broken up into smaller portions of the scope of a release.
The generic Scrum approach, on the other hand, defines sprints instead of iterations and releases that can take between 2 and 4 weeks. Therefore, software development with Scrum does not necessarily involve releases and release planning but there can be Scrum releases in practice (read more below).
However, requirements are also managed in prioritized lists: the sprint backlog and the product backlog are such lists that are dynamically prioritized by the product owner.
What Is a Release Candidate in Agile?
A release candidate is commonly defined as a software version or a set of features that is functional yet not ready for being marketed, e.g. to finalize testing and receive user feedback (source).
In agile release planning, a release candidate may often refer to a feature that has been developed, is basically functional, and is in the process of being tested within an iteration. Once it has been fully tested and all errors have been fixed, it moves on to be included in the overall release.
If release candidates fail in an iteration, their error fixing and finalization is often done in the subsequent iteration.
What is Agile Release Planning?
Agile release planning refers to the scope- and timeline-setting for an iterative or incremental product development project. It is used in agile or hybrid projects where a mid- to long-term planning of the product or system development or integration is required.
Agile release planning is often seen as the process of creating the big picture that links the product vision and roadmap to the release schedule and the release to iterations which in turn use an iteration plan that defines features and tasks on a more granular level.
The term is mentioned in the PMI’s Project Management Body of Knowledge as a technique under the ‘Develop Schedule’ process (PMBOK®, 6th ed, ch. 22.214.171.124). Although the PMBOK tends to focus on the more predictive and traditional project management approaches, this technique is introduced in PMI’s framework to consider iteration-based agile projects.
The term ‘iteration-based agile’ is defined in PMI’s Agile Practice Guide (ch. 5.2.6). It involves initial (rough) planning of iterations, which are portions of a release. When more information is known that allows for a more precise projection, agile teams replan their iterations to take this refinement into account. This may also require adjustments to the release plan.
How Is Agile Release Planning Used in Practice?
Agile release planning can serve a number of purposes, depending on the project approach and organizational requirements
Here are a few examples:
Release Planning in Agile Projects
In agile approaches and projects that use releases and iterations, release planning is a technique to implement the product road map which is derived from the product vision. The product roadmap contains the high-level requirements broken up into releases.
The release plan sets out the number of iterations within a release. At a more granular level, the iteration plan defines the features that are to be developed within a release.
While releases and release plans have a mid- to long-term perspective, iterations are much shorter and therefore narrower in terms of scope. This facilitates agile development and, in particular, the processing of feedback and short-term changes to requirements and features.
Refer to the below graphic for an example of how release planning is done in agile frameworks such as XP.
The planning of agile releases can be done manually or using project management software. For instance, Lucidchart published a guide to developing an agile release plan using their software.
Release Planning in Hybrid Projects
In addition to the above-mentioned link between product roadmap and iterations, agile release plans can also help integrate agile development projects into a release-oriented organization or architecture.
For instance, a customer-facing system could be developed using agile approaches. However, that system would need to be integrated into the company’s complex IT architecture, also involving interfaces to other systems. Thus, the development and deployment of that customer-facing system would necessarily be subject to the organization’s central release planning.
In such cases, the technique of agile release planning can link the organization’s releases to the iterations and features that are developed in an agile (sub)project.
A release plan in Scrum represents the allocation of items of a product backlog (the list of features and requirements of a product) to releases. These features are then developed in sprints.
In line with the values and principles of Scrum, a release plan is intended to be a guideline and a living document that is dynamically updated when things change or new information becomes known.
According to the Scrum Institute™, a scrum release plan requires a prioritized and estimated product backlog, the velocity indicator of the team, and the ‘condition of satisfaction’ (or definition of done) which comprises the goal of the product development.
Based on the effort estimations for features (the amount of work needed) and the team’s velocity (the productivity of the team), features can be assigned to different releases and sprints.
What Is the Difference between Releases, Iterations, and Sprints?
Releases refer to scheduled development and deployment of software features or changes over a typical period of 1 to 3 (or even more) months. In agile, iterative, and some hybrid projects, releases are broken down into several iterations that have a smaller scope and a shorter timeframe, often between 1 or 2 weeks and 1 month. In some agile frameworks such as Scrum, iterations are also referred to as sprints.
How Long Is a Sprint in Agile/Scrum?
A sprint in Scrum is typically 2 weeks to 1 month long. However, it can also be shorter or longer if this is deemed more appropriate for the development project.
Whether you are working as a project manager or product owner in an agile, iterative, or hybrid project or whether you are preparing for your PMP exam – understanding agile release planning is key to enable agile or iteration-based development in combination with mid- to long-term release and project planning. Read our articles about the other schedule management techniques if you wish to learn more about developing and managing project schedules.
Thanks to the agile release plan, a scope, subject to further refinement, and a timeline can be set out for a few months in advance. At the same time, agile development teams are able to retain their freedom to plan and regularly replan the exact scope of each iteration. To some extent, agile release planning is a technique that allows project managers and product owners to combine the advantages of both traditional project management (e.g. mid-/long-term planning) and agile project approaches (e.g. responsiveness to change and feedback).