I'm convinced that my work is to make customer's life easier.
A developer is his own customer. He is the person which will read his own code. Not the customer.
So how to manage the complexity ?
Think about your customer, code, think about yourself, refactor, repeat.
Trashed code, is not wasted code, it's code which made you think on how to make things better.