Techniques for Solving the Toughest Problems

I’m a software architect, software engineer, data scientist, and analyst by trade. So far in my career, I have faced more and different problems than the average bear. This is a list of some of the techniques I have used to crack some of the harder nuts in my career. They’re pretty simple, so don’t expect any major revelations, and they’re obviously focused on my own experience as a technical knowledge worker. I’ll probably add some new ones over time, too. But I hope they’ll be useful to others, no matter their background.

Rubber Duckie, You’re the One

I certainly did not invent rubber duck debugging, the practice of explaining your code to a theoretical (or real) rubber duckie, but I’m a big believer in it.

You make coding lots of fun!

Explaining your thinking and logic to another person forces you to structure and justify your thinking, which often helps tease apart related concepts and clarify reasoning (or lack thereof). And it turns out that it doesn’t even matter if the other person talks back!

Divide and Conquer

Break the problem down into smaller problems, then solve those smaller problems. Still too hard? Break the smaller problems down again! Continue chipping away at the smaller problems until you can add the small solutions up into a big solution to the original problem.

Reframe the Problem

Are you sure you need to solve the problem? Can you reframe your thinking to avoid solving the problem in the first place?

Change Your Environment

Moving from home to the office to a conference room to the library or a coffee shop often helps me gain a new perspective on a problem. Sometimes just turning my chair away from my desk is enough.

Walk and Talk

Getting my feet and mouth moving often helps get the pieces of a problem moving around, too.

I know I’m not alone

Much like rubber duck debugging, I usually don’t even need another person to be present. So if you see my walking around muttering to myself, I (probably) haven’t gone crazy; I’m just working on a problem.

Knoll the Problem

Laying out what you know you know — and what you know you don’t know — is an enormously powerful problem solving technique. A well-informed catalog of disconnected facts usually isn’t far removed from the beginnings of a solution.

Just knoll the problem over for a bit

Once you have a list of the moving parts of a problem, you “just” need to figure out how they fit together, and that’s a problem you can usually divide and conquer.

Grab a Snack

The physical act of getting up and actually eating a snack combined with the physiological effects often sparks some new thoughts.

Go Do Something Else

Go do something else. See a movie. Watch a YouTube video. Play a game of pickleball. Read a book. Go for a drive. Do anything that gets you out of your head. When you come back fresh, you’ll have new ideas.

Relate it to Another Problem

If you can map an “unsolved” problem onto a “solved” problem, then a solution typically presents itself.

Solve a Simpler Problem First

If you can’t figure out how to solve a hard problem, trying figuring out how to solve a simpler version of the problem, and then ladder up.

Good luck, solutioneers! Those problems don’t stand a chance.