I consider if I can break the problem down into simpler problems.
I want to have a map in my mind, or in notes on paper, so I’m writing code according to a plan, rather than writing code in hopes a plan or solution will happen by accident.
Measure twice, cut once.
There are too many interruptions before that to spend the effort required to establish a mental model of the problem domain and potential solutions prior to that.