Perhaps I'm uncommon in that I make diagrams and even sometimes pseudo-code (mostly in the form of mapping out function names, because they serve as a proxy for program flow paths) before I write actual code, but I don't find myself really going off gut feeling. I have a pretty good idea of what the program is going to look like and do before I start, and with e.g. Claude I give those to it, so it mostly looks like what I envisioned, unless it suggests changes.