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!)
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 family in the truck (even moved the infant car seat over from minivan) for a ride to pick up flowers to plant. My first reaction was problem solving (rushed problem solving). That looked like sighing, rushing, jump starting, jiggling, 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.
This let me troubleshoot a bit more slowly and carefully later in the day. Here’s what I did:
- 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. Thought through rule outs and couldn’t rule it out without changing.
- Probable cause – I was thinking starter now.
- Verified – I am not mechanically inclined s0 I verified my direction
- 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 – 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)
- 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)
Decided To Fix
- Critical – I wanted to get this running, needed to for work.
- 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. We were a Go.
- 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.