There is no silver bullet in Software Development but simplicity must be what the software developer strives for.
If the software engineer spends more time thinking about the simplest possible way to provide a solution then a great product will result.
The word "Engineer" comes from the latin word "ingenium" which means "cleverness".
As an Electronics Engineer graduated from a poor Country I had to learn how to develop stuff out of the materials that were available and that I believe pushed me to think as a profesional about cost (every time).
I strongly believe that Software Development cannot be effective with a non Engineering mindset. The waste of resources causes not only a complicated system that is difficult to build but in the long run too expensive to be maintained.
Refactoring is a needed tool and it should be used every time there is place to make the existing software simpler. It should be used to eliminate garbage and not to add more.
Simpler is better, and that statement should drive our efforts as Software Developers.
“Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.”
― Antoine de Saint-Exupéry