The feeling can be described as my brain running in circles (sometimes it’s just walking or crawling though). Like a snake biting its own tail. I think it happens when I try to combine or unify things that don’t belong together in an attempt to simplify some model as in “everything is an X” or “this other thing is just an X with a Y”.
I’m not sure why I have that instinct in the first place, it certainly seems natural in some sense, like pattern matching? On one hand I feel like this is a strength of mine, I love seeing similarities in concepts and people have said that this is a bit of a defining characteristic of mine. I think it can have a lot of value. For example it is not unheard of that different fields have similar concepts, or shapes, but name them and maybe combine them differently, and recognizing this can lead to deeper understanding, because there might be solutions in some area that also apply to another but isn’t understood in their terminology or practice.
But the other side of the coin is well, the above. In the worst case it is hard to let go of running in circles because I’m driven by a motivation to find these valuable parallels or new ways of modelling something. In less severe cases it simply blocks me of understanding something that might seem trivial, because I already tried to make a connection that may not seem to exist.
I think this is very closely related to the type of job we’re doing. Mapping to and modelling processes and data in the small and large. Or at least it is part of it. Thinking about this and discussing this issue with other people might help. Can you relate? Is there a name for it? What do you think are good activities or strategies to exploit the value of this type of thinking and to mitigate the cost?
Usually with some struggle I can find "the right" order of dependencies such that it all goes together nicely, or such that the amount of circularity is minimized. For some kinds of code (say a code generator) there is a bootstrapping process where I built out a very small core and then build larger systems by subsequently expanding that core.
It's a lot of work to get to that place, often I've spent a month thinking about a system like that before it falls into place and it seem obvious that it should be built a perfect way.