Anthony Colangelo explains how he uses a technique called Switch Programming to help solve coding problems:
We gave each other 30 seconds to explain our intended results, and nothing else. Then, we traded computers and got to work.
I was working on a fairly new project with a codebase that Mark really hadn’t been in, and Mark was working on an old project that I hadn’t touched for over a year and a half (long story). Point is, neither of us were intimately familiar with the project we were debugging. It didn’t matter—we knew what had to happen, and we dug in.
Within five minutes, our issues were solved. We explained to each other what we did to fix the problems, we learned a little something, and we got back to work.
This sounds like a great approach to solve design challenges as well. If you’re not sure how to get past a particular design problem, explain the intended result to someone, and give them 5 minutes to try to sketch a few solutions. It will probably not be perfect, but it’s a great way to get some fresh thinking to bump you back on track.