But over engineering? In software? It's not a thing. "yagni" might be a thing, but it's also still addressing the wrong part of the problem.
If the hardest part of software engineering is building mutual understanding among a group of humans with different contexts, backgrounds, and approaches, then it stands to reason that trying to anticipate future problems will result in *solving the wrong problem*
We don't over engineer, we just build the wrong thing.