A friend of mine told me about some humor that happened in his office this past week. It seems that the SAN admin (aka the SAN man) needed to reformat a disk in the array. The documentation mentioned that formatting a disk is much faster when the array is put in the offline mode. So that’s exactly what he did:
Manager: "What happened to the SAN?!?" SAN Admin: "I dunno. I just brought it offline to format a disk. That shouldn't do anything." Manager: "You did WHAT?!?!" SAN Admin: [blank stare]
Did the SAN admin think that bringing it offline with the intent to format a disk was different from bringing it offline with the intent to bring it offline?
I mention this story because it brings up an interesting problem that I run into from time to time. It seems that there are people that do not realize that an application, hardware, etc does not know what their intent is and therefore it cannot adapt to it. For example, if they click on button A (which copies a file) with the intention of deleting something then they wonder why it didn’t delete the file. This occurs with them knowing that the button has created copies of files in the past.
This problem is exacerbated by context sensitive functionality. I have found out that there are people that aren’t aware of the “context” of an application. Function A leads to state B which causes button C to perform function D. But if function A is not performed first then button C performs function E. (My father is one of these people *grin*.) These people find some applications to be magical and quite confusing.
This is something to keep in mind if you are designing software to be used by the masses.