Why We Use On-Call Shadowing On-call shadowing is an essential practice at PagerDuty. For a new engineer, a shadowing period serves as a kinder, smoother...by Max Timchenko
March 26, 2019
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.
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:
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.