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]