Occam's Razor

...not one of these... it's a different thing.
Programmers don't seem to be given tools to diagnose problems, whereas physicians do - Occam's razor, differential diagnosis.

A doctor uses mental tools such as Occam's Razor and Differential Diagnosis to justify a particular prognosis or diagnostic route. These tools provide a quick and relatively   simple framework for making quick decisions from the available information.

Occam's razor is given as:
entia non sunt multiplicanda praeter necessitatem
entities should not be multiplied beyond necessity
Occam's razor is used to simplify the number of diagnoses but suggesting you run with the explanation of the problem which has the fewest assumptions. When debugging, you'll notice some properties or symtoms, but not everything and this is what makes debugging debugging as opposed to just observing.

The symptoms you observe suggest the problem, but it's ambiguous. Each symptom could come from a few places, so which do you run with? The place, or cause which assumes 20 symptoms besides the one you've observed is going to be less likely than the cause which assumes just 3 other things.

That's what we mean by not over complicating things, and choosing the most probable cause of all the possible causes.

Suppose the most probably cause is wrong? Surely you've wasted your time? Yes, but the great advantage of going using Occam's razor is that because the most probable cause also has the fewest assumptions you have fewer assumptions to test. If you have to disprove a cause, you'll be going it for the easiest cause first.

Wikip: "If a hypothesis, H, explains the same evidence as a hypothesis G, but does so by postulating more entities than G, then, other things being equal, the evidence has to    bear greater weight in the case of H than in the case of G, and hence the amount of support it gives H is proportionately less than it gives G. (Katz 1998)."

The justification of Occam's razor runs like this:

You have symptoms, S and T. Symptom S suggests cause A, while symptom T suggests B.

You know that cause A requires a bunch of other things to be true, and so does cause B. Which one is most likely? Cause A requires 9 other things to be true, but cause B only assumes 4 other things so B is more likely.

Using 2 pieces of information plus your knowledge of the 2 possible causes you can make a case for the most probable cause and run with it. You haven't had to run extra tests, only use a little logic.