Solving problems is a fact of life. But those of us who serve in a technical role such as a programmer or database administrator face problems more than others. In my 10 years working in technical roles at different companies I've seen a lot of weird issues. Just today we had a situation where a customer was unable to fill out a form on our Web site. When asked what they meant they said they simply couldn't type into the form fields. It all sounded pretty bizarre to me. We eventually discovered a div layer was taking up more space than intended but only in Internet Explorer 7. The div took up so much space it trapped user clicks and wouldn't let customers interact with the form.

Tonight I was confronted with an entirely different kind of problem. My wife had a meeting to attend so I had our son all to myself. For dinner I made him a peanut butter and jelly sandwich, one of his favorites. He usually plays while I make dinner but tonight he decided to watch me spread the peanut butter and jelly on his bread. After finishing he said I wasn't supposed to spread the jelly on top of the peanut butter. I brushed off his comment and finished preparing our meal.

A few minutes into eating he reminded me how his sandwich wasn't right. He'd had a bit of an attitude since I got home from the office and his continued focus on the sandwich being wrong was frustrating me. All I could think about was how making him happy involved doing something I didn't want to do. I could take the bread from his sandwich, scrape off the peanut butter and jelly, and make it over again. This would be equivalent to refactoring bad code. Or I could scrap the whole sandwich and start over, much like throwing away bad code and starting from scratch. Since I'm not one who gives my son everything he wants - especially when it comes to something silly like a sandwich - I just ignored his commentary.

After a few minutes the best solution hit me like a ton a bricks. I think I even laughed a little. Looking at my son I said: "Just flip over your sandwich, then you'll be eating with the peanut butter on top." He thought about my suggestion for a moment and completely satisfied he flipped over his sandwich. His problem was solved and we finished dinner in peace.

Problem solving should always be that simple. As technical people we tend to match difficult solutions to difficult problems. Our ego gets in our way as we force ourselves to believe we must create crazy, overcomplicated solutions for the problems we face. Many times this way of thinking keeps us from solving a problem entirely, or it creates additional problems in the future. Neither of these things are good for our businesses or customers.

The next time you are up against a difficult problem try not to wander into analysis paralysis. Think about the problem in simple terms and who knows, maybe your best solution is a "flip of the sandwich" away.

Aaron West's Gravatar
About this post:

This entry was posted by Aaron West on October 8, 2010 at 7:59 AM. It was filed in the following categories: ColdFusion, Programming. It has been viewed 6336 times and has 7 comments.

7 Responses to Problem Solving and Sandwiches

  1. It's amazing how kids can get so freaked out over the smallest things like having his jelly on top of his peanut butter. But then I realize I get freaked out over things that OTHER people thing are small. So what's really the difference?

    That insight becomes even more important when you hear from your customers about how they're going to LEAVE your business because they can't change the wording on a widget.

    Good post Aaron, and good insight as well.

  2. Wait...you can just flip it over?

  3. See the first mistake here is that you assumed you knew what the client wanted, instead of asking for them to provide a detailed specification first.

    Just a little bit of sensible process will see you making perfect sandwiches every time, with no support/maintenance required. :)

  4. The best part of your sandwich solution was that you informed the user of said sandwich that the problem was a user error and he could easily resolve the issue himself.

    Unfortunately you can't always do the same with clients, even if they are using IE 7.

  5. @Peter and @Matt - Very nice guys. Gotta love tech humor. Thanks so much for reading.

  6. So when someone is using IE tell them to flip the computer over? Sounds like a good solution to me :-)

  7. Ha! I really need to start reading your blog. I just randomly checked your Facebook wall and saw this. Good stuff. Sigh, looks like I have a lot of back-reading to do. Hope you guys are doing well!