The essential steps for solving a computer problem don't seem to change very much in different situations. The specifics will change, of course, but they fit into a fairly regular problem-solving framework. This page attempts to outline that general framework.

How do you know something went wrong?

  1. Did the computer tell you something is wrong?
    Error messages are generally there for a reason, and are not intended to be ignored.

  2. Did the computer change its behavior?
    Computers are good at doing the same tasks over and over again, producing the same results if you give them the same set of inputs. Any change in behavior has a root cause, which may be indicative of a problem that needs solving.

Where do you begin?

  1. Carefully record any available error messages.
    While some error messages are utterly useless, the utility of a specific message may be difficult to determine in advance. If you have no other mechanism to record the error message, you might be able to take a screenshot.

  2. Record any other information about the circumstances in which the error occurred.
    What user account was active when the error occurred? At what time did the error occur? Were any other programs running on that computer at the same time as the error occurred? How much disk space is free? How much memory is free?

  3. Check the logs for useful information.
    If no error messages are visible, it's possible that the error was logged by the application in either a system-wide log facility or in an application-specific log facility. If it is logged, it is usually the case that the log contains additional information beyond the immediate error message (if any).

First steps

  1. Determine whether the error can be consistently reproduced.
    If you can consistently bring out a particular error, this means you have a set of stable circumstances in which the error will manifest itself.

  2. Determine the essential circumstances for the error to appear.
    If the time comes to report the error to someone else to investigate, they will want to know a concise set of circumstances they can use to recreate the error. Try varying the environment in which the program runs, or vary individual inputs when running the program. If you change something and the error still appears, whatever it is you changed is not likely to be part of the problem.

Generic, all-purpose solutions

  1. Are you out of disk space?
    Running out of disk space can cause a wide variety of illogical errors to manifest. You should not assume that your program will run without problems in resource-starvation situations.

  2. Have you tried restarting the program?
    If you leave programs up for a long period of time, more often than not, the program will slowly lose track of its internal state, and will eventually paint itself into a corner and fail.

  3. Have you tried restarting your computer?
    Client-oriented operating systems, such as Windows and MacOS, have a tendency to lose track of their internal state too. UNIX-like operating systems, such as Linux, BSD, or Solaris, do not typically suffer from this problem, but they are by no means invulnerable.

Look for specific solutions

  1. Inspect circumstances as local to the problem as possible.
    When trying to resolve a problem, always attempt solutions in order of locality. If nothing else, it is embarassing to state that someone else is causing problems network-wide, when in truth, the problem is only on your computer. As an example, if you think you have a network problem on your workstation, you should perform checks in this order:

    1. Verify that the applications on your computer are working correctly.
    2. Verify that your computer has a valid network connection.
    3. Verify that the network connectivity within your building is functioning correctly.
    4. Verify that your building has connectivity to its upstream network provider.
  2. Ask the internet for help.
    Frequently, a careful search on Google for the entire error or log message (or portions of it) will provide useful clues towards a solution. For tricky problems, it's not uncommon to find other people reporting precisely the same error as what you've experienced, and never see any pages that suggest a solution to the problem.

  3. Ask experts for help.
    Once you feel you have exhausted your local troubleshooting resources, there is no shame in asking for the assistance of someone more experienced. They may have previous experience with this exact problem, or additional information resources that are not at your immediate disposal. Perhaps someone in your local environment can assist you, or there may be a support mailing list specifically for the program you're having problems with.

Answers/Troubleshooting (last edited 2007-04-20 17:31:20 by KyleLanclos)