Environments
Staging is not production. Drift, parity, preview and ephemeral environments, and the limits of pre-production evidence — including why more environments is not more safety.
Each environment is an instrument that measures some production properties and is blind to others — which makes an extra one a cost to justify, not a safety improvement to assume.
Environments diverge from each other continuously and silently, and a drifted environment does not stop answering questions — it starts answering them wrongly.
Parity means preserving the operational characteristics that matter for the change at hand — explicitly not identical scale, which is unaffordable and still insufficient.
A running instance per change, created from the pull request and destroyed with it — excellent evidence about wiring and product behaviour, no evidence at all about scale.
Environments created on demand and destroyed when done, which is only possible once infrastructure, configuration, data and secrets are all codified — and which turns environment count into a decision instead of an inheritance.
Copying real user data into a test environment moves it from your most controlled system to your least controlled one — use synthetic data, anonymised data or a controlled subset instead.
Promotion moves one immutable artifact forward and changes only its configuration — which is what makes the evidence from earlier environments mean anything at all.