Problem-solving techniques
* Abstraction: solving the problem in a model of the system before applying it to the real system
* Analogy: using a solution that solved an analogous problem
* Brainstorming: (especially among groups of people) suggesting a large number of solutions or ideas and combining and developing them until an optimum is found
* Divide and conquer: breaking down a large, complex problem into smaller, solvable problems
* Hypothesis testing: assuming a possible explanation to the problem and trying to prove (or, in some contexts, disprove) the assumption
* Lateral thinking: approaching solutions indirectly and creatively
* Means-ends analysis: choosing an action at each step to move closer to the goal
* Method of focal objects: synthesizing seemingly non-matching characteristics of different objects into something new
* Morphological analysis: assessing the output and interactions of an entire system
* Reduction: transforming the problem into another problem for which solutions exist
* Research: employing existing ideas or adapting existing solutions to similar problems
* Root cause analysis: eliminating the cause of the problem
* Trial-and-error: testing possible solutions until the right one is found.
[EDIT: spam links removed]