Skip to main content
DoneThat

AI Adoption GuideSoftwareRelease

Rollout Risk Scorer

ML scores each release for blast-radius risk based on diff size, system criticality, and incident history.

Software processDiscoverDesignBuildTestReleaseAdoptSupportRetire

By Don, DoneThat’s AI coach · updated

What this scorer evaluates

A rollout risk scorer estimates how widely a release could hurt production if something goes wrong. It does not approve or block the deploy. It ranks relative blast-radius risk so a release engineer can match the change to a rollout plan that fits the exposure.

The model combines three signals that practitioners already use informally: how large and concentrated the change is, how critical the touched systems are, and how those systems have failed after similar changes before. The output is a risk score (and usually a short rationale) that sits next to the release ticket, the changelog, and the proposed traffic plan.

Related release work often feeds the same decision. Diff summaries from an Automated Changelog Generator help describe what changed. Flag defaults from a Feature Flag Configuration Advisor constrain who sees the change. After traffic starts, Post-Deploy Anomaly Detection watches whether the score’s concern materializes. The scorer’s job is the gate before traffic moves: how careful should this rollout be?

Human judgment stays in the loop. The model scores risk. Engineering still chooses canary size, hold times, region order, kill switches, and whether to wait for another review.

Inputs the model requires

The scorer needs three classes of input. If any class is missing or too thin to evaluate, it must return empty output rather than guess.

Diff size and shape. Prefer structured change metadata over a raw commit count. Useful fields include files and packages touched, lines added and removed, new or altered APIs and schemas, migrations, config and infrastructure changes, and whether the change spans many services or stays inside one module. A large but well-isolated library bump can be lower blast-radius risk than a small edit on a shared authentication path. The model should treat concentration and coupling, not only volume.

System criticality. Map each touched component to a criticality tier the organization already trusts: for example user-facing checkout, auth, billing, and data-plane paths versus internal tooling or experimental surfaces. Ownership metadata, service catalogs, and dependency graphs help. Without a criticality signal, “big diff” and “scary system” cannot be separated, and the score becomes noise.

Incident history. Use post-incident records, recent SEVs, rollback reasons, and change-failure patterns for the same services or change types. Recency and relevance matter more than lifetime incident totals. A service that failed twice after schema migrations in the last quarter should raise risk for another migration even if the current diff looks modest.

Optional enrichments improve explanations without replacing the three required inputs: test coverage of touched paths, feature-flag readiness, blast radius of prior similar releases, and whether the change is behind a dark launch. Those extras refine confidence and rationale. They do not license a score when diff, criticality, or incident inputs are absent.

How scores should drive rollout plans

Treat the score as a ranking and a planning cue, not a binary ship-or-stop decision. Release engineers map score bands to playbooks they already own.

Lower relative risk often fits a standard progressive rollout: a small canary, short soak if signals stay clean, then wider traffic with normal monitoring. Medium risk usually means tighter canaries, longer holds, explicit rollback owners, and stricter flag defaults for the first cohorts. Higher risk typically calls for narrower initial exposure, staged region or cell expansion, mandatory peer review of the traffic plan, and confirmation that kill switches and dashboards are ready before the first percent of traffic.

The scorer should surface why the score landed where it did. Useful rationales name the critical systems in the blast radius, call out unusually large or cross-cutting diffs, and cite recent related incidents. Opaque numbers without drivers do not help an on-call decide whether to shrink the canary or add a hold.

Keep the decision rights clear. The model may recommend “treat as high blast-radius risk” and list contributing factors. A person still picks the plan, accepts residual risk, or delays the release. Automated enforcement (hard blocks based only on the score) belongs only where your change policy already defines that rule. Default practice is advisory scoring plus human selection of the rollout strategy.

Empty output when evidence is incomplete

Empty output is a correct result, not a failure mode to paper over. If the diff cannot be resolved, criticality mapping is missing for touched systems, or incident history for those systems is unavailable or stale beyond your policy window, return no score and state which input class blocked evaluation.

Do not invent mid-range scores “to be safe.” A fabricated moderate score trains teams to ignore the tool. Do not substitute global company averages for service-specific criticality or incident history. Do not score from title and ticket text alone when the actual change set is unknown.

When output is empty, the release process should fall back to the human-led risk review you already require for incomplete change data: gather the missing inputs, or run the release under the more conservative default plan for unknown blast radius. The scorer’s silence is the signal that automation cannot yet justify a ranking.

Re-run the scorer after inputs are repaired. A score produced after a late service-catalog fix or a corrected diff range should replace any earlier empty result; do not average empty and scored runs.

Using the scorer in day-to-day release work

Wire scoring into the same place release engineers already plan traffic: the release checklist, the deploy pipeline’s planning stage, or the change ticket before the first canary. Run it after the change set is frozen and before production traffic moves. Re-score if the diff expands (hotfix piled onto the same train) or if criticality metadata for a dependency was wrong.

Calibrate with retros, not vanity accuracy metrics. After incidents and after quiet releases, ask whether the score would have pushed the team toward a safer plan, and whether high scores that shipped cleanly were explaining real exposure or over-weighting noisy signals. Adjust criticality tiers and incident windows with platform and SRE owners; do not silently retune the model against one noisy week.

Pair the score with the rest of the release system. Changelog automation keeps the human rationale readable. Feature-flag advice keeps initial exposure bounded when risk is elevated. Post-deploy anomaly detection closes the loop when traffic is live. None of those replace the scorer, and the scorer does not replace them.

The durable practice is narrow: score blast-radius risk from diff size and shape, system criticality, and incident history; emit empty output when those inputs are missing; let engineering choose the rollout plan.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other. This one is rated high effort to implement, so the baseline matters more than usual.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first