Scenario: you are a software developer working with a customer. The customer has a requirement you do not like and you are pushing back against. In your pushback you rely on technical arguments the customer is having difficulty understanding.
Is the problem:
1. The customer's lack of understanding?
2. Your inability to explain?
3. Your own lack of understanding of the customer's requirement?
I submit (3) is often the case and it's your job to deal with the technical problems.
Also related: I like software design elegance as much as the next programmer. And I'd love to make the claim that well-designed code is more sustainable over the long run.
But I can't, because it isn't true. There are just so many examples of horrible codebases persisting for years because they fill a need and no one wants 'fix something that isn't broke'. Even when it manifestly IS broken in easily explicable ways.
This is a human problem, not an engineering one. And you can't fix people.
Related: Programmers are the only ones who actually CARE about software elegance. Everyone else just wants it to do a job without getting in the way of doing other jobs.