> People can write perfect, simple, DRY code if they have the time to and are incentivized to.
In my experience, people trying to make code DRY also wind up writing over-complicated patterns and abstractions to make it so.
I think a large amount of over-engineering is likely due to people applying patterns where they don't need to, or building unnecessary abstractions, or otherwise doing what they think is "good code".