The Art of SQL Server Database Administration, Development, and Career Skills for the Technically Minded
Recently I attended a Red Gate SQL In The City event. Steve Jones gave an excellent session filled with good stuff but my favorite quote of the day was “debrief, it’s important”.
I wanted to shout amen. I wondered if anyone else in the room realized what incredible advice they’d just been given. I instantly thought an entire session could be dedicated to that one bulleted item. How many of us participate regularly in a good debrief or get how critical it is to our careers?
Back in my knuckle dragging days (when I was still working in law enforcement) I learned the value of a good debrief early. My squad got called out to fill a federal DTF warrant. There were about 8 deputies and each was assigned a job. I was the best Spanish speaker in the group so despite my rookie status I was assigned microphone, the guy who does all the talking. Other jobs were divvied out amongst the group; cuff team, lethal cover, crowd control (we were nabbing the guy out of an apartment complex). Assuming I could talk the guy out; the cuff team would take control of him and I would transition to non lethal.
Lethal cover are the guys with long guns ready to address threats if the shooting starts. Non lethal is in charge of manning the taser (or other tools) in case there is a fight but no lethal threat.
Dispatch was able to get a phone call into the apartment and notify the guy that 50 very motivated officers (cops always lie) were waiting outside and it would be best if the subject surrendered peacefully. He agreed and dispatch continued that a spanish speaking officer would provide instructions when he opened the door with both hands where we could see ’em.
The door opened and I began relaying instructions via loudspeaker. I talked him down the stairs where the cuff team came out from cover to take him into custody. Preparing for my next job I came out from my own position of cover, readied my taser and approached the subject ready to subdue him from behind if needed. He was taken into custody without incident. I felt very hollywood about the whole incident. Transport took him and the rest of us broke away to a quiet spot to debrief.
The Sergeant began, “Russ, you could have gotten someone effing killed”. All eyes were on me. I was feeling pretty good about my role until then, now I wanted to hide. One of the senior guys gave me a reassuring smile but filled in where she left off. “Dude, when you transitioned from microphone to non lethal cover you walked in behind the subject. Right in front of the lethal cover guys. What would happen if the shooting started?” I took a moment to play it all out in my head. Either I would have been mowed down by my own guys or they would have hesitated out of concern for my safety and one of them could have been killed.
So what was the point of the debrief? Make Russ feel stupid, or make Russ a better asset to the team? The Sergeant was an excellent practitioner of verbal judo. Within minutes of singling out my mistake she was congratulating me on my excellent use of Spanish and how critical that was to our success. The other deputies on the squad reassured me that we all screw up. By the end I actually felt closer to the team. The point of the debrief was to increase the effectiveness of the team. It worked.
A few weeks later I was back in the server room, in a hurry for the weekend, finishing up some maintenance on the booking databases after a massive ETL job. I issued a quick delete statement and in a matter of seconds removed several years worth of booking data from production. It took about a week to get things back to normal. Guess who called the debrief? I did. I wanted others to learn from what I did, and brainstorm ways to make sure I didn’t do something like that again. You know what I learned from that process? Write all deletes as selects first. Run them, verify them, and then and only then, change it to a delete. If you modify the where clause, make it a select again until you’ve tested what you’re doing. ESPECIALLY IF YOUR IN A HURRY FOR THE WEEKEND. It sucks being the goat, but it’s an excellent career saving move if you do it right.
Since then I’ve learned a few other tricks like opening a transaction and verifying affected row count before applying the commit. Spending the money on a pre-stage environment to match production is even better if you can afford it.
The objective of a debrief is to increase the effectiveness of the team and the likelihood of positive or profitable outcomes. That’s the objective, but what are the elements that make that happen? Oh, look at that – I’m nearing my personally implemented thousand word per post limit. Stay tuned for part two. I’ll give you a hint though. One element of a good debrief – leave your ego at the door.