5 sections
The Cost of Deferring an Upgrade
A PHP 7.1 → 8.2 upgrade was put off because "it works." The bill came later: a dependency lock, batched breaking changes, and bugs spread over months.
Series
Treating runtime, framework and dependency upgrades as a risk decision: triggers, inventory, decision matrix, rollout and the decision not to upgrade.
2-part series
Part 1 of 2
A PHP 7.1 → 8.2 upgrade was put off because "it works." The bill came later: a dependency lock, batched breaking changes, and bugs spread over months.
Part 2 of 2
A Dependabot PR, an EOL notice and a CVE bulletin share one queue but not one urgency. Sort signals into three types and give each a response time.