Confessions of an IT pro: My biggest professional blunders
articles.techrepublic.com.com
articles.techrepublic.com.com
Everywhere I've ever worked I've encountered some variation of this. One recent customer had some MySQL problems which took down the sole MediaWiki server holding all their IT documentation. Not only did they not have a standby, not a single backup or dump was ever done.
These days what I find even more astonishing is how even experienced professionals make the mistake of thinking they don't need separate backups because their system has some integral disk redundancy (e.g. http://www.joyent.com/joyeurblog/2008/01/22/bingodisk-and-st... ).
So as soon as one new datafile was added to the database (I estimate, a week after that regime was put in place) all subsequent backups were invalid. We were in that situation for over a year and everyone believed that the databases was being properly backed up. We would even occasionally restore a file (picked from the backupset, hmm) and block-verify it. I only discovered it when I was upgrading the system and I fixed it real quick (dynamically generating n equally-sized lists of files is trivial!). Hard coding the list of files was stupid, sure, and betrayed a fundamental lack of understanding about how the system worked - but it was also stupid that no-one ever checked, and that betrayed a lack of understanding of how organizations work.
The lesson I took away from that was, you have to have people who have visibility of things end-to-end.
Another good rule... if you inherit a new customer you need to "trust but verify" the previous tech's work. I warn my new clients about the added costs of checking and learning a new setup. I learned this one the hard way when a new client had a decent tape backup program in place but I never did a test restore. One day they needed some deleted files restored and was shocked to learn that the previous tech had inadvertantly selected the option to backup the directory structure only! No files in piles of tapes, just folders. Yikes!
The worst one I did : With this product, the VP of product distributes product keys. I had recently had a HDD crash and reinstalled and had customer facing deadlines. He was not around and I needed to make some progress, so I fiddled the keycheck code and bypassed it. I finished my work and committed the whole workspace... including the hack... fortunately this was caught in QA.
Now, that is not the worst impact on my life... in my earlier years I made it too much a point to get my real opinion across.
(I am being serious here) Can I get a .com.com?
Apparently, they've stopped doing this. Now, typing in, say, http://mistake.com.com ends up doing a search for "mistake" on CNET's search engine, search.com.
Boy does that ever strike a nerve. Mainly in my own code.
I'll write a function with just a little bit of complexity, getting working perfectly, and build all kinds of stuff on top of it. Three months later I need to add something to it, but I don't understand what I wrote.
I'm the biggest stickler on variable naming and self-documenting code and yet, I still keep doing it to myself. Oh well, always room for improvement.
"Someone who wants to appear clever relies on memory, someone who wants to get things done writes things down."