Thinking things through, and looking for all possible outcomes. If you think of all possible outcomes, then you will be prepared and more likely to solve the problem you are solving. This applies to every problem. Also, look at things from different angles.