You would think the title of this post would be an obvious rule of business. Yet this week seems to have been filled with useless work for me. Really now, why should I do something that has absolutely no effect on anything else? I wish someone could explain that to me. Today just sent me over the edge. Let me explain.
The program I work on most of the time develops graphics processing hardware for military applications. We have to test this hardware, and most of the time, it doesn't work initially. There are two ways to debug bad hardware. The first is problem solving, where you:
1)gather evidence about the problem
2)list potential causes
3)perform testing to narrow down the causes until you find the primary one
The second way is much more popular, and violates the rule that is the title of this post. I call it hacking. Basically, you just try stuff until you fall ass-backwards over the solution to the problem. Really, you would be surprised at the popularity of this approach. I was discussing a problem with a co-worker today, while another co-worker repeatedly suggested that we try things which would tell us absolutely nothing about the problem. I nearly smacked him (okay I'm exaggerating a bit). It's really very simple. When you suggest a test to run, you specify in advance what a positive or negative outcome of the test will mean. That is how you stop hacking. That is how you get to the heart of the problem. If you don't know what a pass or a fail would mean with respect to finding the problem's cause, then don't run that test because it is a waste of time.
Thank god I have this blog to vent my frustrations.