I recently sat down with a friend of mine — insanely talented coder/hacker; talking about how to solve some complex problems in programming. During the course of the discussion he made a profound point:
Sometimes (or probably more likely often) when you hit a wall trying to solve for that gnarly problem you are working on, you better ought to take a couple steps back and change the question.
Instead of asking yourself whether you have the right answer, ask if you are asking the right question?
Reframing your problem from optimizing your current answer to allowing yourself to explore the question space often leads to breakthroughs. Regularly, when I allow myself to do this (and I should really do this more often), I gain insights which weren’t available to me before.
With a different lens: Are you optimizing (do you have the right answer) or are you innovating/inventing (are you asking the right question)?