Alexander Pope once remarked - To err is human; to forgive, divine.
He might just as well be speaking about the ultimate solution to the uneasy relationship between computer programmers and end users. The former are engaged into arcane art of software, and the latter just want their job done.
Here are some quotes that at first blush appear to be at odds one with the other - but are fully reconciled with the Alexander Pope’s quotation:
“That software which is flexible, simple, sloppy, tolerant, and altogether forgiving of human foibles and weaknesses turns out to be actually the most steel-cored, able to survive and grow, while that software which is demanding, abstract, rich but systematized turns out to collapse in on itself in a slow and grim implosion.”
- Niklaus Wirth
The above quotes are two sides of the same coin.
The software must be designed for humans; it must be forgiving, easy, abuse-tolerant... To design to these standards the highest level of rigor and craftsmanship is required. A programmer-oriented software that requires user to adapt to the idiosyncrasies of the programmer's thinking is a result of a sloppy programming, and it is never good enough let alone - divine.