Thursday, July 30, 2009

The Art of Troubleshooting

"Oh, Wow!" a person will exclaim, "How'd you do that? How do you know which button to push? Which wire to wiggle? Which setting to change? How long have you been doing this? Where did you learn?"

"How," they want to know, "do you know how to do what you do?"

How, indeed. The machine isn't doing what the user wants, so I'm called down. I am the Computer Whisperer, or at least I am seemingly so. Often the solution is a button press, a wire wiggle, an almost invisible wave of the hand - but the magic is not in the solution, but only in the knowing.

So, how do I know? That, friend, is the topic of the day. I'm not going to talk to you about troubleshooting any particular thing, instead I'm going to speak in sweeping generalities and hyperbole. Just trust me here.

You are troubleshooting, presumably, because you are not getting the result you expect. Congratulations! That's the whole lesson! You are now an expert troubleshooter.

What? Too simple, you say? Alright, then, I'll elaborate a bit - but just a bit.

Every system, be it a doorknob or a nuclear reactor, is a series of causes and effects. Each cause and effect is a chunk, a link in a chain of cause and effect chunks. Big chunks are made of smaller chunks, and those smaller chunks, and those smaller chunks still.

So all systems are made of their own chunks, and the troubleshooting process is the same for both. The process is agnostic and iterative. You start with big chunks, and work your way down through wrong results. To recognize that you are getting the wrong result, you must have an idea of what the correct result would be. This is called "familiarity". The more familiar you are with the system, the more granular and therefore the more effective your troubleshooting.

"Wait," you ask. "Every system? Every single system ever can be taken on like this? That seems overly simplistic, doesn't it?"

Oh, young padawan, you have much to learn. Yes, every system. It's all about the chunks. It's all about cause and effect. If it helps, sing "the leg bone's connected to the knee bone" while you work through it until you find the point of failure.

None of it is magic. Everything is cause, effect, and the connections in between. Finding the problem is naught but familiarity and patience. Work those chunks, people, work those chunks.

1 comments:

M. Eric Carr said...

I had a related thought the other day -- that one of the greatest ideas in history has to be that of the module. Breaking an insanely complex system down into modules lets you do amazing things.

Someone figures out how to make a piece of slightly impure silicon control the flow of electricity. Someone else realizes that these can be chained together to make things like logic gates. Yet another someone connects two of these logic gates in a specific way, and a flip-flop comes into existence: a single "bit" of (static) digital memory. Another group of people work out how to group bunches of these "bits" together, and pretty soon you have a memory. Eventually, you're building a new computer and order a couple of sticks of DDR2 memory from NewEgg, click 'em into place, and you're several billion bytes better off.

The really neat thing is, you don't have to know or care how all of the little transistors in there do their thing. It all just works. (Well, usually.)

A toast, my friends, to the humble "module." *Lifts Dr. Pepper and takes a sip.*

Post a Comment

 

all content ©2008-2009 by the dosquatch