Familiarity Breeds Counterintuition: is basically a term of phrase I've coined to describe the paradigm rampant in the IT community. Simply put it's the situation where people who are familiar with a system don't realize that what's bleedingly obvious to them isn't actually obvious to anyone else.
I don't think this problem has ever been given a proper definition so I did it and staked my claim, regardless of being articulated most people beyond the realms of IT are most definitely aware of the problem. Some people may know it as:
"Did you understand what the heck that IT guy said?"
...or...
"The IT guys are weird!"
...and also...
"I'm to scared to ask the IT guy"
...
Even the mainstream media is aware of it, you only have to turn on the TV at night and watch one of those modern crime investigation shows where the detectives consult the ultra hip alternative hacker to help solve a crime. You'll notice that in every show the hacker spouts a cacophony of technical jargon, prompting the detectives to say something like "can I have that in English?".
This is the dilemma; why couldn't the hacker say it in English in the first place? Anyone who has worked with or in the IT industry may ask the same question of the IT guy or even of their colleagues.
So why do we do this, why do we act as if we are from another planet?
Now if I was cynical I would suspect that some IT guys did this to feel superior, but I think that it's more to do with being so familiar with a system that we can only talk about a system in technical low level terminology simply because most of the day is spent interacting and or solving problems on that system and with others familiar about that system. Now there is nothing wrong with being familiar with a system but we have to be careful to not be
counterintuitive when doing thing such as writing things such as user documentation, test cases even code. Counterintuition is a terrible smell in any area of the IT realm it causes single points of failures, wastes times, causes bugs and alienates others all things we seek to avoid in the Agile environment.
If we return to the languages analogy when speaking different languages it's essential to make sure that you know whether the other person speaks the same language as you, don't assume they do just because they work in the same company, building, floor, project or team. So as a good practice before you explain something, write anything or try to convey any logic or information, ask your self "Can I have this in English?"