Love/Hate Troubleshooting

or, Love/Hate Learning

Remember the kids game “telephone”? You whisper something into the ear of the person next to you, they pass it to the next and so on… and then you compare what the last person heard to the original phrase.

Fun! Look close and most child games frequently reveal true observations of the human species “in nature”.

We learn by doing AND by “experiencing” what others do.

As an application programmer, where I FEEL a decent level of confidence due to many hours of DOING, I sometimes get pulled into troubleshooting technical problems that are… FRINGE.

That’s the level where MY EXPERIENCE is less from the physical me and more of the mental me. Learning by observation alone can easily lead to false “experiences” since, in fact, they were not learned by DOING, only by WATCHING (even if involved in the event).

Troubleshooting is just following a series of clues, step by step, to what is almost always a logical conclusion. Find the point of failure and that specific problem might be fixed.

Following the path of discovery takes time and is not always clear. It is much like a puzzle and the piecing it together CAN BE mentally stimulating, almost like playing a game. There is USUALLY some “good learning” along the way. THIS is the “benefit of experience” we often hear about. No other way to get it.

And, there is a somewhat fascinating quality to technical troubleshooting (IF YOU EMBRACE IT) that can be FUN. It can be:

AJOYRIDE, but with someone else at the wheel. It could play out any number of ways.

Part of the joy can be interacting with vendors and open source developers, getting to know good, helpful people who you will never actually meet but truly appreciate.

It is not all joy but there is little need to explain the “hate” part in the title… when things are NOT working out, frustration sets in… we have all been through it, right? Enough said about that.

I write this DURING a current “ride”, trying to figure out why a server routine that has run well for months is suddenly generating errors, but no code changed. It occurs to me…

SOFTWARE works a LOT of the kid game TELEPHONE

Passing data from one component to another…

…but thousands of times per second

… and across code from different creators

…connecting via electrons and protocols, physical and intellectual

…communicating between the most diverse array of components you might imagine

…checking and double-checking

so with remarkable precision (once the wrinkles are ironed out*).

Over and over again, almost effortlessly.

This is probably where our illusion of perfection comes from, the concept that PEOPLE can operate the same way as COMPUTERS. Indeed, IF we could achieve such level of “operational perfection” as a single piece of well-groomed computer code, it would be AWESOME.

But not likely.

Dreams are great motivators. They are our carrot, driving the us ever forward… even if only inches at a time.

Or like whispering in the ear of a friend what we “just heard” from another friend.

We strive to create machines that are faster/better/smarter/quicker than us. What ELSE have we humans been doing all along? We should not worry about this area, we can accomplish great things IF we want to. It just may take time. But WE are simply not programmable like machines.

SO, the focus should be toward EFFECTIVENESS… the matter of WHERE we place our energies. Unless effort is directed at an actual problem:

  • There is only a random chance of improvement. (Which sometimes is the case, despite other reasons given credit.)
  • TIME is guaranteed to be extended. longer. lost. wasted.

Think about this the next time trying to SOLVE A PROBLEM.

What is the ACTUAL problem?


*IF the wrinkles are EVER ironed out. Sometimes an effort is abandoned, deemed too difficult or unmaintain-able; maybe another direction is pursued (open source has led to more options).