Jeff Atwood writes about
making software “considerate,” which lists thirteen different attributes of considerate software. It’s a nice read. In the post, he writes that considerate software:
1. takes an interest
2. is deferential
3. uses common sense
4. is forthcoming
5. anticipates needs
6. is conscientious
7. doesn’t burden you with its personal problems
8. keeps you informed
9. is perceptive
10. is self-confident
11. doesn’t ask a lot of questions
12. takes responsibility
13. knows when to bend the rules
I have some favorites in there, and most of them hit a note with me because of something project related. The idea of a UI not burdening you with it's personal problems is logical, but I've never heard it phrased that way before - the analogy is very apt and made me smile. Knowing when to bend the rules is very important. You may have a very detailed and well thought out set of user interface standards, however there are still going to be times when you implement them and end up with something which doesn't make sense. It's ok to break your own rules for a good reason - deal with it.