“12 Smooth Stones“, by Chuck Meyer, is a book of advice, insight, and wisdom shared from father to daughter. In discussing social pressures and how to navigate them, Meyer tells his daughter (I’m paraphrasing, as my copy of the book has gone missing)
“I will always trust you. I will usually trust your judgement. But I don’t always trust the situation.”
As IT practitioners, I think that’s a breathtaking observation. In most cases, we trust the technology. In most situations, we trust our coworkers. In most instances, we trust our abilities.
But what should NOT automatically trust is the situation we find ourselves in. The things we work with are all so complex, and carry with them so many variables, that it’s impossible for anyone to truly understand all possible outcomes. Consider for a moment:
- My 20-line powershell script
- 10 lines of which I copy-pasted from StackExchange
- is running against a home-grown 200,000 line application
- that connects to a 5 million record database
- running on MySQL which contains 12 million lines of code
- running on Debian Linux, which is made up of 68 million lines of code
- Interfacing with firmware from a dozen different vendors
- connecting to hardware sourced from hundreds of manufacturers
…ALL OF WHICH was created by humans, whose genome comprises approximately 3.3 trillion lines of genetic code.
Given those numbers, it’s easy to see that things could go wrong for literally any number of reasons.
So yes, my coworker, I trust you and your abilities. But I’m still going to ask you if you’re sure. I’m still going to ask you if you have a rollback plan. I’m still going to check to ensure we have backups.
Because I don’t always trust the situation. And neither should you.