An ounce of prevention is worth a pound of cure
An ounce of prevention is worth a pound of cure.
Or put another way, the earlier you manage something, the cheaper it is.
That feels like a almost universal rule, doesn’t it?
Healthcare is the obvious example:
- It’s cheaper for healthcare providers (and better for you) to not get sick
- If you do get sick it’s cheaper to get treated quickly and locally at home/in your community
- More serious illnesses that require hospitals and long term healthcare is much more expensive
That’s why healthcare providers invest in preventive measures like vaccines and campaigns to warn against health risks from certain behaviours.
A closer example to us would be software engineering:
- It’s cheapest to prevent bugs making their way into production
- Once they do we need to know about it as quickly as possible, through observability
- We then develop great incident management processes to aid swift resolution and effective communication
That’s why software engineering teams invest so much into code reviews, unit testing, CI checks, strongly typed languages, integration tests, staged deployments, and so on.
But what about data? How much are we investing in preventing data issues affecting production applications?
Generally we’re not investing much, and that’s why we spend so much of our time - at high cost - responding to and working around data issues.
Some things we could do include:
- Adopt great incident management processes (could just be the same as software engineers use)
- Use patterns such as the write audit pattern to test our changes against production data
- Encourage the use of data contracts to add change control to datasets at the source
Fun fact: In the foreword for my book on data contracts, Kevin Hu, co-founder and CEO at Metaplane, used the phrase an ounce of prevention is worth a pound of cure. It was actually the first time I’d heard it, and it turns it’s a more popular phrase in the US than here in the UK :)