A release is a set of customer visible and operational features that together provide a completely new or improved product capability. It’s something that’s meaningful from the user’s perspective, often comprised of user stories and service delivery related activities.
Digging deeper into this, a release holds much value to users, customers and internal teams. A release is not simply releasing new feature or functionality. Instead, a release is a date when the company is committing to delivering a new customer experience, and to supporting every customer interaction point associated with it. A release not only represents major launch milestones or the product lifecycle, but also defines themes that tell a story to a customer.
Releases are often either date-driven or scope-driven. The key drivers for a date-driven release are usually marketing factors and the key drivers for a scope-driven release are a specific set of valuable features from a user’s perspective.
If the delivery date is held constant, the scope becomes a variable. This is different from a fixed-scope release that must have a specific set of features and the date on which the features are delivered is flexible.
In Agile, release planning is usually done through an estimation process where scope is explicitly defined as a mutable variable (presuming the deadline is fixed) or by choosing a rough forecast date for a given set of features (if the scope is fixed). The Product Owner use this information to decide whether the project or release will produce enough return on investment (ROI) and therefore whether or not it makes sense to proceed with the project or release.
Also key to the Agile framework are short, iterative sprints, which may lead you to feel that there is no need to plan actual releases or forecast dates. However, the forecast serves as a guideline to allow us to have a conversation around what we must do next and how fast we think we can do it.
Why Release Forecasting Matters
Release forecasting helps with launch and cross-team coordination, and also in figuring out what can go in or be removed from the launch. Launch coordination involves other product owners, marketing, sales enablement, and sometimes, external agencies too.
- For product owners, it’s crucial to know what’s in scope and what’s not. They can then use that information to effectively manage other PO’s and stakeholders. It also makes it easier to track milestones and phases, as forecasting dates helps to make investment decisions-based on the best estimates of value, cost and risk. Moreover, it helps in managing dependencies and planning, and in meeting date expectations. Prioritization is also key, as forecasting helps to ensure that the most important features are prioritized and more likely to get shipped.
- For stakeholders outside the team, having a release forecast makes it easy to get a sense of around when features are expected to GA, so they can plan launch activities (like announcements, content, enablement, etc.) accordingly.
- For the team, release forecasting helps everyone frame the work and their day-to-day decisions so they know how to make better trade-offs. It also helps create the alignment around the story you want to tell. The goal is for teams to have a shared understanding and commitment to delivering on the agreed release (with flexibility to manage which features are targeted) by an agreed date, as they have the maximum autonomy around telling the story.
- For management and leadership, release forecasting makes it possible to be better informed of overall product roadmap and releases.
The overall objective of a release forecast is not that it needs to be exact, but rather provide a ballpark and framework to work towards. There are several factors that you may need to consider that can directly influence the release forecast such as:
- Team velocity
- Size of user stories
- Changes in release scope
- Work not related to the release
The forecast should be transparent and continuously updated with the expectation that it may move. This is not a bad thing since it reflects “real-time” information at any point in time. What is most important is the decisions we make because it moves. We want everyone (the team, product owner, clients, stakeholders, etc.) to understand progress so expectations are managed properly and everyone is working and making decisions from the same information.
Release forecasting as a high-level triangulation mechanism allows for planning for a series of iterations at a high level. Improved release forecasting facilitates DevOps best practices by orchestrating collaboration around a shared goal and communicating the entire scope of the release to project teams and stakeholders around a high level plan. Above all, the reason why this practice is so crucial is that it involves the team in its creation, which means more buy-in, accuracy, and empowerment.