| Perhaps the most valuable but difficult-to-learn skill any 
                    technical person could have is the ability to troubleshoot a 
                    system. For those unfamiliar with the term, 
                    troubleshooting means the act of pinpointing and 
                    correcting problems in any kind of system. For an auto 
                    mechanic, this means determining and fixing problems in cars 
                    based on the car's behavior. For a doctor, this means 
                    correctly diagnosing a patient's malady and prescribing a 
                    cure. For a business expert, this means identifying the 
                    source(s) of inefficiency in a corporation and recommending 
                    corrective measures. Troubleshooters must be able to determine the cause or 
                    causes of a problem simply by examining its effects. Rarely 
                    does the source of a problem directly present itself for all 
                    to see. Cause/effect relationships are often complex, even 
                    for seemingly simple systems, and often the proficient 
                    troubleshooter is regarded by others as something of a 
                    miracle-worker for their ability to quickly discern the root 
                    cause of a problem. While some people are gifted with a 
                    natural talent for troubleshooting, it is a skill that can 
                    be learned like any other.  Sometimes the system to be analyzed is in so bad a state 
                    of affairs that there is no hope of ever getting it working 
                    again. When investigators sift through the wreckage of a 
                    crashed airplane, or when a doctor performs an autopsy, they 
                    must do their best to determine the cause of massive failure 
                    after the fact. Fortunately, the task of the troubleshooter 
                    is usually not this grim. Typically, a misbehaving system is 
                    still functioning to some degree and may be stimulated and 
                    adjusted by the troubleshooter as part of the diagnostic 
                    procedure. In this sense, troubleshooting is a lot like 
                    scientific method: determining cause/effect relationships by 
                    means of live experimentation.  Like science, troubleshooting is a mixture of standard 
                    procedure and personal creativity. There are certain 
                    procedures employed as tools to discern cause(s) from 
                    effects, but they are impotent if not coupled with a 
                    creative and inquisitive mind. In the course of 
                    troubleshooting, the troubleshooter may have to invent their 
                    own specific technique -- adapted to the particular system 
                    they're working on -- and/or modify tools to perform a 
                    special task. Creativity is necessary in examining a problem 
                    from different perspectives: learning to ask different 
                    questions when the "standard" questions don't lead to 
                    fruitful answers.  If there is one personality trait I've seen positively 
                    associated with excellent troubleshooting more than any 
                    other, it's technical curiosity. People fascinated by 
                    learning how things work, and who aren't discouraged by a 
                    challenging problem, tend to be better at troubleshooting 
                    than others. Richard Feynman, the late physicist who taught 
                    at Caltech for many years, illustrates to me the ultimate 
                    troubleshooting personality. Reading any of his (auto)biographical 
                    books is both educating and entertaining, and I recommend 
                    them to anyone seeking to develop their own scientific 
                    reasoning/troubleshooting skills.  |