In my opinion over-engineering is a symptom of not enough thinking. Complex, over engineered solutions don't happen because a problem is too well understood, they happen because a problem is not understood well enough.
This is based on the assumption that more thinking == better understanding.
This is based on the assumption that more thinking == better understanding.