Lesson 3 of 5
Building the annual release calendar
8 min
A release calendar is where SAP's clocks meet Contoso's business. The inputs come from three directions: SAP events (security notes, stack availability, upgrades), business events (period-end closes, peak order seasons, audits) and internal capacity (who can test, when environments are free). The output is a year on one page: internal releases, freezes, regression windows and the testing each event needs.
| Event | Testing required | Lead time | Typical duration |
|---|---|---|---|
| Monthly security notes | Assess; targeted tests of affected areas; smoke test | Patch Day to agreed implementation date | Days |
| Contoso minor release (monthly) | Change tests plus risk-based regression | Two weeks scope freeze | One to two weeks in CMQ |
| Feature or support package stack | Full regression of key processes, integrations and extensions | Two to three months | Several weeks including fixes |
| Base release upgrade | Project-scale: regression, new-feature evaluation, performance | Six to twelve months | Months |
| Year-end close | No change; support only | Freeze announced a quarter ahead | Several weeks around close |
Contoso's event types and their testing needs. Durations are planning assumptions, not SAP rules.
- JanuaryYear-end close freeze endsDan signs off the close; the first minor release of the year follows
- February to MarchFeature pack stack projectStack applied to CMD, then CMQ; full regression; production in late March
- April to JuneMonthly minor releasesSecurity notes assessed monthly; quarter-end close freeze in the last week of June
- July to AugustBusiness change releaseLarger enhancement release, avoiding the July quarter-end close
- September to OctoberSecond stack of the yearApplied and regression tested before the year-end freeze
- November to DecemberYear-end freezeOnly emergency and security fixes; full freeze over year-end close
Freezes and windows
Three kinds of window give the calendar its shape. A business freeze protects critical periods: Dan, the finance process owner, wants no change in the week before and after each quarter-end close, and a longer freeze around year-end. A scope freeze fixes the content of a release some days before its test cycle starts, so testers test a stable build. A regression window reserves CMQ, testers and key users for a stack or upgrade, during which no other change is imported so findings have a clear cause.
- Does the event change SAP code or the platform broadly (stack, upgrade)?Yes → full regression window · No → continue
- Does it touch finance, order-to-cash or integrations in scope for close?Yes → risk-based regression of those processes, outside close freezes · No → continue
- Is it a targeted fix with a known, small footprint?Yes → targeted tests plus the smoke pack · No → review with the test lead
Two practical habits keep the calendar realistic. First, put people on it, not only systems: the key users who run acceptance are also the people who run the close, so their availability is the real constraint. Second, leave buffer: a regression window that ends the day before a freeze leaves no room to fix what the regression finds.
What would you do?
The second feature pack stack of the year is planned for production in mid-December, right before year-end close, because the regression window slipped by three weeks. What should Luis propose?
- Calendar inputs: SAP events, business events and internal capacity.
- Business freezes protect closes and peaks; scope freezes stabilize builds; regression windows isolate stacks and upgrades.
- Size testing to the event: targeted for small fixes, full regression for stacks and upgrades.
- Plan people as well as systems, and leave buffer before freezes.
- Process owners and the test lead confirm the calendar before it is published.
Check your understanding · not graded
Lesson check
1. What is a scope freeze?
2. Why isolate a regression window for a stack application?
3. Which event typically needs a full regression?
4. Who should confirm that releases avoid close periods?