One thing to consider is that your code will be hard to maintain by others if you can’t at least communicate your big picture. And ideally, everything should be subdivided into modules with clearly defined interfaces, so that each module can be independently reasoned about based on (only) its interface definition. This increases maintainability because things can be reasoned about locally. People also differ in how much detailed context they can hold in their head at any given time, so the smaller the required context can be made for reasoning about any given piece of code or part of the design, the better.
Yeah, but I think my brain just doesn't work like that, I kind of have to work around that. I've never managed to change this with 10+ years. I do feel guilt around it all the time when working with others.