A heuristic is a rule that provides a shortcut to solving difficult problems. Heuristics are used when you have limited time and/or information to make a decision. Heuristics lead you to a good decision most of the time. Heuristics are discussed in both computer science and psychology circles.
From http://www.dictionary.com/search?q=heuristic :
"A RuleOfThumb, simplification, or educated guess that reduces or limits the search for solutions in domains that are difficult and poorly understood. Unlike algorithms, heuristics do not guarantee optimal, or even feasible, solutions and are often used with no theoretical guarantee"
Heuristics are good when:
- you have to make a spur-of-the-moment decision OR
- you have limited information and cannot obtain more OR
- the decision is not that important
Heuristics are bad when:
- you have plenty of time and information to make an important decision
- you need to be right 100% of the time
Examples of heuristics:
- deciding not to interview with a company because their help-wanted ad had a few AlarmBellPhrases
- concluding that a person is closed or defensive because they have their arms crossed
- deciding to vote for someone only because they belong to a certain political party
- deciding to eat at restaurant B rather than restaurant A only because B has more cars in its parking lot
- When the level in the fuel tank drops to 1/2 tank or less, always filling up the fuel tank at the very next re-filling station.
Differences between heuristics and software DesignPatterns:
- a heuristic is about decision making, so is not limited to software
- a heuristic is not about trying to balance opposing concerns (forces), but is about trying to make a good decision based upon what little information is available
More information about heuristics:
Books on the Subject
SimpleHeuristicsThatMakeUsSmart
There's a wiki devoted to heuristics starting up at: http://greenlightwiki.com/heuristic
See also RulesVsHeuristics