On winter walks along the towpath, I jot what changes between visits. That same habit stopped schema drift for a Cleveland analytics team: we wrote lightweight data contracts and made them part of every change.
Each contract described required fields, nullability, and freshness targets. A small TypeScript CLI validated against Redshift, and GitHub checks blocked merges without approvals.
Incidents fell by 40%. Writing things down — trails or tables — keeps you honest and keeps surprises away from the people downstream.