Problem solving is what I do, I am software engineer and it is my job to translate a business requirement into a software solution. That can be in the form of brand new services, or mayhap, the integration of some functionality into an existing service. Either way when folks have a problem (professional or not) I love the process of finding the best solution using the most appropriate tools.

In general I break down problem solvers, like myself, into two classes, the hammers and the surgical knives!

Hammers

What I have noticed over the course of my career is that some folks are real experts at building systems and services from scratch, laying brand new foundations, assumptions and principles without being encumbered with past conventions or even technologies. Your are allowed to break new ground with the tools that make the most impact.

In almost all problem spaces there are constraints that you have to account for, otherwise there would not be a problem, so hammers are still accustomed to negotiating obstacles and issues with aplomb but generally the method of getting around them is more direct and inclusive in the initial architecture. Starting over again gives you a certain level of freedom but it also comes with the responsibility of ensuring all permutations and combinations are accounted for.

Surgical Knives

The skill required to make changes to a working system are slightly different, you need to account for all aspects of what is usually an already complex design. You need to be able to make changes, additions or fixes without compromising the quality of the existing situation. This kind of work requires a more subtle approach to be able to promote small shifts within the scope and context of an existing foundation.

So what kind of problem solving are you best at dear reader? Do you have to tear the whole problem down and start over? Or can you make those precision changes required to improve a situation?

ps. I believe the principle is applicable to non-developers.