So many developers don't seem to understand the point of modularization and add lots of abstraction just for abstraction's sake. It's hella frustrating to take over a project like that.
We have those parts of code someone wrote years ago that is heavily abstracted for no reason at all other than that the developer thought it might be good. It’s just endless clicking on methods just to find no code at all and then you have to deep dive to figure out where stuff is actually computed.
Make it just one simple method call? Nah, it should be divided into 10 different abstract classes because whatever reason.
It’s also the most buggy part of the code because no one currently in the team dares to touch it.
It happens in English too — just think about how many people never learned how to properly use paragraphs, quotations, hyphens, parentheses and footnotes.
It’s just the human condition to attempt to communicate in known blobs without thinking about what you’re actually trying to communicate and how it can be most effectively done with the tools at hand.