I came across this idea a few years ago while reading Change By Design by Tim Brown. It’s a simple yet surprisingly powerful mental model. To think about problem solving in two phases: divergent and convergent thinking.
Divergent thinking comes first. It's where you explore the problem space and discover potential solutions. It's when you're learning, your understanding is growing and the problem space is expanding. Divergent thinking is creative. It’s best done with an open and relaxed mindset.
The convergent phase is when you know enough about the problem to pick a solution and then to drive it to a fine grained conclusion. Convergent thinking is analytical. It’s best done with momentum, with a focussed and driven mindset.
I use this model all the time to remind myself not to start converging too quickly. To fight that urge to take the first solution I find and just run with it. I think it’s a very easy mistake for technical people to make. To leave the divergent phase too early and overlook a far better solution. Or even worse, miss some aspect of the original problem which you’ll discover later invalidates all of your work.
This quote from polymath Linus Pauling sums it up nicely: "To have a good idea, you must first have lots of ideas".