# Improving analysis skills

I am a software engineer with a couple of years of experience. However I feel my problem solving skills need to be improved. To put in crude terms given facts A and fact B I have difficulty in reaching conclusion X ? Some people seem to have the ability to reach conclusion X given facts A and B and and also remembering to take facts C,D in account.

What techniques do you use to improve your problem solving and analysis skills ?

-
–  Rudy Aug 2 '11 at 9:29

Generally when I'm solving problems via analysis I do the following:

• locate in a system, the sub-components that are the focus of the problem
• State the initial assumptions for the components state
• given a set of initial state(s), predict what you believe will be the outcome.
• If the prediction(s) fail, remove each state assumption one at a time, and confirm that the state is what you assumed it to be.
• If the states are all correct, then the issue is one of logic.
• To solve a set of Logical issues, start off with a set of "Logical Transform" assumptions
• Repeat the above method but for "Logical Transforms" example: "assume (1) when condition X -> x transforms to y"

That's loosely how I work through problems.

-

There is a book called Analysis Patterns by Marin Fowler. It is about object models and not about any algorithmic analysis, but learning about this patterns, helped me recognizing patterns in various domains and thus being able to analyze it more thoroughly.

-