Can’t Troubleshoot? Don’t Apply!
Quick 2016 Update: This is an older post of mine, but everything in it holds true today. As a SQL Server consultant, it rings more true. As a business owner, I really can’t hire someone without the troubleshooting skills folks need to have. I’d rather someone who can troubleshoot than someone who is a guru with SQL Server honestly.
If you can’t troubleshoot, you can’t work with me (if I can control it anyway). When I am interviewing you I am judging your troubleshooting skills as much as your SQL Server knowledge – if not more depending on the role. I’ve blogged a bit about troubleshooting (Methodology, Trusting Empirical Evidence) and wrote a SQL Server Central Article on it.
A couple weeks ago I almost threw out my shoulder patting myself on the back after replacing the starter in my truck. Up to that point the most complicated thing I’ve done to a vehicle is changed a battery, tire or fuse. I’ve changed the oil once or twice (in my lawn tractor…) I won’t spike the football by talking too much about the fix here but I wanted to talk about the steps that brought me to the realization that I was going to be changing into my dirty clothes and lying down under my truck for a couple hours. Those steps followed the methodology I discussed before and effective troubleshooting has been on my mind as I prepare for my SQL Rally presentation on Professional Development (Iceberg, Dead Ahead!)
SQL Server Troubleshooting – Same Steps For Cars:
I Identified The Problem
I’ve had some intermittent issues with starting but jump starting, waiting or jiggling wires (not a proper methodology but a good quick step each time I had an issue) solved it each time. Well the day it looked serious I had the whole packed into the truck to go get some garden stuff. Even struggled with an infant car seat move from the van to the truck.
My first reaction was problem solving (rushed and inefficient problem solving). That looked like sighing, rushing, jump start attempts, jiggling wires, tightening battery terminals, etc. It was messy and shotgun like. My wife gave me that look and I knew to stop and move everyone to the van for our trip instead of sitting there trying to solve the issues. I forgot to fly the plane and pay attention to the big picture.
This let me troubleshoot a bit more slowly and carefully later in the day without a family sitting in a hot truck. Here’s what I did while calm to identify the problem:
- Think – How does a truck start? The 100 level of it (where I am) is – the key turns and, if the battery is good & transmission is in Park or Neutral (and truck knows it), electricity flows through the battery to a starter. That starter spins fast and starts the engine. So electrical flow is critical, some switches and relays are critical. Fuel helps, I hear.
- Rule Outs – I ruled out the issues in order of “obvious problems” and easier to fix:
- Fuel – Engine wasn’t even trying to turn over, just clicking. Starter wasn’t spinning the flywheel.
- Battery – Tested, no issues. Terminals looked fine, connection tight.
- Fuses – Fine
- Relays – Starter relay had same number as some others. Swapped them, same sounds.
- Wires/Cables – Connection from battery to starter was good
- Key – I was pretty sure there was no chip in mine, but used a spare to be sure.
- Analyzed Evidence –
- I had ruled out many components. Really all that seemed left was the starter. I thought through rule outs and couldn’t rule it out without changing it.
- Probable cause – I was thinking starter now.
- Verified – I am not mechanically inclined so I verified my direction, but as an amateur. I was solely using my troubleshooting skills here.
- Internet – Found a few trustworthy sites describing starter issues. Symptoms matched, rule out steps matched and sites agreed. Still, it’s the internet…
- Parts Store – Paid a visit and told them what I had done and what I was thinking. They agreed and added “starter problems almost always start intermittently, probably was better in winter because of how the metal moves”
- Decided On Course Based on Evidence– I was going to sink the money on a starter. If it worked, it was likely it. If it didn’t I’d return/resell and call a “consultant” (tow truck to garage)
I Researched the Solution Approach
I had to replace the starter. Could I? Or should I hire a consultant? Sometimes you can solve the issue. Sometimes a mentor or consultant alongside you makes a difference.
- Level of effort – Could I do this myself? By all accounts, yes, if you can follow directions, wires and spin a ratchet.
- Instruction – Looked for some quick training. I wanted to know some basics (What does a starter look like for instance… what tools do I need.. What precautions should I take, etc.)
- Tools – Verified I had the right tools (Socket set really)
I Chose a Path
I made my choice for a few reasons. I made sure I was ready and knew what I would do if I realized I was in over my head. I wasn’t going to get mad, start slashing with a hammer, cry, or make the problem worse. I’d consult to get the right help in.
- Critical – I wanted to get this running, needed to for work. That helped make my call to give it a shot.
- Relatively easy – The internet gave the general idea.
- Had a backup plan – Tow truck, AAA, Wife’s family members who are mechanically inclined
- Go/No-Go – Couldn’t see any reason to not try. I Didn’t even have to lift truck and worry about it slipping off jack/jack stands and making my face a little flatter. We were a Go.
I Got Dirty Fixing the Problem
- Got Dirty – Spent a lot of time under the truck finding exact location of starter.
- Traced wire to starter – Did that by following the starter wire from battery I had read about and tested earlier.
- Found bolts, found ratchet, made them meet
- Brought it down – It was difficult to access.. I had to take fender off, an unexpected diversion with components I didn’t know how to work with (little plastic pop screws, broke a few before I figured it out)
- Replaced It – Disconnected old one (pictured in this post), hooked up the new one and put it in the right spot.
- Hooked up battery – (I had disconnected it before starting – made sure I was not working on live system… Always bad when you mess up in live)
- Tested it a few times and ways – Mainly because I liked the sound of my truck starting and the look of my blackened, greasy hands turning the key 😉
- SHIP IT! Problem solved.
Lessons For Next Time
I asked myself about what I could do differently next time –
- Could have a few more tools for next time
- Should have researched proper way to remove/replace fender fastener clips
That’s really it. All of those steps are how we can solve any problem. When I ask that unrelated problem question or open ended “how would you deal with complaints of a slow SQL backed app?” I am looking for something logical, step based and calm. Something along the lines of these steps generally –
- Gather Initial Information
- Keep Thought Involved
- Rule In/Rule Out Causes Methodically
- Verify Your Understanding and Assumptions
- Propose Solution(s) Accordingly
- Carefully Test Proposed Solution (if you can)
- Implement Fix
- Test and Verify Fix
- Learn for Next Time
And do all of that while remaining calm and keeping a picture on the big picture and the goals and make sure you don’t forget the main reason you are there.