Tuesday, May 10, 2011

The Bad Tourist

Think of a country, it doesn't matter which one. Somewhere in this country, far away from any cosmopolitan city, is a tourist that hasn't bothered to learn the native language. Red-faced and cursing, he's yelling at the natives in his own language in the mistaken belief that anything can be understood if it's said loud and often enough. Most natives avoid him, looking terrified. If any of his countrymen are unfortunate enough to be near he will corner them, muttering about the ignorance of people who can't learn a language so easy a child of three can speak it. If his anger is deep enough, he will swear that the natives are pretending to not understand just to drive him crazy. His frustration blinds him to his own ignorance, and so prevents him from learning a better way to communicate.

There's another type of tourist as well. This tourist has tried to learn the native language, but his skills are so poor few can understand him. Many talk to him slowly, enunciating each word, just like you'd talk to a baby. Even worse, some natives will mistake his halting sentences for fluency, and will answer the tourist with a burst of incomprehensible speech. But after seeing the dumb, frightened look on the tourist's face, the native reverts to baby talk. This sort of tourist feels humiliated by his treatment and the evidence of his ignorance. He often will change into the first type of tourist by the end of his trip. It's easier to retreat to what you know than go through the pain of learning something new.

Programmers are tourists in the user's world. Programs are written for a specific audience, and the audience has it's own dialect for talking about their work. Oftentimes developers will not bother to learn this new tongue, and instead run around shouting their own language, which sounds like gibberish to users. The programmer assumes users are too stupid to understand, but what users see is a lout who can't be bothered to learn anything about the country he's visiting.

Some developers do try to learn the native language, but don't go far enough. They seize on one or two user terms and use them constantly. This can sound both patronizing and ignorant to users. And when users ask a detailed question the programmer is immediately lost. Often he will try to hide his lack of fluency by pretending to understand, like a foreigner nodding through incomprehension. The pretense fools no one. The users feel frustrated, and the programmer, in embarrassment, retreats to his shell. If translation problems aren't seen as a chance to learn more from each other, the opportunity to improve the users' system is lost.

This isn't all the developers' fault; users do this too. Many users don't bother to learn anything about computers and so have unrealistic expectations about what can be done and how soon. This naiveté leads to frustration with the development process, and to the common belief that programmers are messing up on purpose. These users get trapped in the same situation as the bad tourist: their lack of education creates even more distance between them and the people they're supposed to be working with.

Language barriers create frustrating emotional binds, which make working together hard. But the emotional symptoms are good in a way, since they can be used to diagnose communication problems. Whenever someone takes on the personality of the bad tourist, repeating himself over and over, frightening others away, and swearing the natives are plotting against him, you can be sure that there's a language barrier between him and whoever he's arguing about. This is most useful when diagnosing yourself, because it's harder to see these things when you're trapped in your own emotional storm. When you've spotted a communication problem, remember that the solution is not to say the same thing in different words. What's needed is a willingness to learn something about the other side.