First the idea hits.
Then I think about it some more and it takes a direction.
As I work through the direction, I’ll see another direction. Usually relatively similar, but different enough that it demands its own exploration.
As I dig in into the problem, more layers and possibilities reveal themselves. Sometimes they point in entirely different directions. Some seem like big possibilities, others seem smaller.
As I keep exploring, some more options emerge. Some independent of the ones I’ve already explored, but others branch off from an existing exploration.
As I keep sketching and thinking and mocking and working through variations and conditions in my head, on paper, or in code, a few strong possibilities take the lead. I begin to follow those.
One primary direction becomes the most obvious, but there are still variations on that idea.
As I dig into the variations, I realize they aren’t direct descendants of that primary direction. Instead they’re closely related offshoots, but smaller. They usually fade away.
And finally the solution becomes clear.
Then I check my thinking by going through the process again.
Where it goes from here depends on what it is, but hopefully at the end I’ve enjoyed figuring something out.