Missing indexes and forgetting to test backups
This week I'm going to explore a topic that might seem overly simple at face value, but hints at what might be some deep truths about the nature of the database business, and perhaps software development, in general.
Making the Same Mistakes Today
Indexes are important. All of your tables, at least those in an OLTP system, should probably have at least one index. I know that right now you're thinking, "You needed to tell us that indexes are important? Seriously?" In addition, backups are worthless unless you can restore them, so test you restores. Again, I suspect you’re thinking, "Seriously?"
Let me pivot to the deeper truth by getting in a time machine and dialing back 15 years or so. I was a hard-core OLTP tuning expert in the early and middle stages of my career. As I started to focus on performance tuning I still remember thinking, "This isn't rocket science. Maybe I can make a career out of it for a little while, but I can't possible ride this consulting gravy train forever. Eventually people will figure this stuff out on their own."
About a decade ago, I started my first company, and for a while my career focused much more on the business side of the company and I wasn't quite as technical as I used to be. Recently, I started another professional services company. I still focus more on the business side of things, but I've been doing a bit more technical work than I had done for a while. And I figured out that people still forget to put indexes on tables and still forget to test their backups. I have to admit that I was sort of surprised that these were still a problem. And then it occurred to me that the people making the mistakes today probably aren't the ones who were making the mistakes 10 or 15 years ago. The people no longer forgetting to put indexes on tables either learned, got fired, or moved on to other careers. But surprisingly (at least to me), many of the same basic mistakes are still being made.
Training New Generation of DBAs
So what does that say about education and passing the torch to the next generation of DBAs (and I suspect many other IT professionals)? Well I’m not entirely sure. But if I think about the medical profession, for example, I'm pretty sure that most doctors today know that leeches probably aren't the superlative cure-all that they were once thought to be. The point I'm trying to make is that I suspect that many other professions tend to do a better job of training the newbies so that certain basic mistakes tend to be avoided as each new generation of workers come through the ranks. Maybe I'm wrong. It’s possible some doctor is writing a blog post right now lamenting about the sad state of affairs in medicine and how the same sort of novice mistakes are still being made. I'm not sure.
What do you think?