Wednesday, January 6, 2010

Are You So Arrogant ...

I was insulted last night. Now, there's nothing new about that, nor even anything particularly blog worthy. After all, we all get insulted in some fashion or another on a regular basis. We shrug it off, and we move on. This time, though, I've heard this particular insult too often. I want to address this, in particular: I was called arrogant.

Why? Because I answered a question.

The person who called me arrogant had asked about a particular piece of a program I've written, wondering what would happen if the user did a specific action. I replied that them doing so would be irrelevant, since it could do no harm. The reply came back, and amounted to "Are you sure?"

Suddenly, I wasn't sure. I went back to the code, and re-read it. I checked the actual behavior while running. I verified the contents of the database. Now, I was sure again: It simply didn't matter if the user did this action. It produced an off-by-one sum error for something which already has a much larger margin of error (counting cards that got sent and receieved from around the world). Being off by one in that situation causes no concern whatsoever.

Despite this, I then checked the database to see who was doing it, and found a whopping four people out of fifty three had done it. I spelled all of this out for the original questioner. Since the original questioner is not a technical person, I made sure to use terms that would make sense to her.

And then she asked the question that started with the title of this post: "Are you so arrogant ... " (yes, I've left the rest out, as I'm trying very hard not to make this an attack against her, and quoting her excessively would do just that).

I'm arrogant because I answered her question in terms that I knew she would understand.

After that, she mentioned that, in her experience, computer people (programmers, techs, administrators, etc) come across as if dealing with idiot children when dealing with non-computer people. So, instead of just being arrogant, I'm arrogant and condescending.

This is where the great disconnect occurs, and is the main point of this post: As a developer, I have to know things about the computer that many people do not. Doing web development, I have to know HTML, CSS, and JavaScript. If I'm doing anything with dynamic data, I also have to know whatever programming language I'm using on the server, and some database dialect so I can store, retrieve, and manipulate that data. All of that is the bare minimum required to do that work.

In order to do it well, I need to know some bits about the underlying operating system, the web server software being used, basics about HTTP (and possibly https), and the quirks of the various browsers in use around the world (IE6/7/8, Firefox, Opera, Chrome). Possibly more importantly, I have to have the knowledge that I can make no assumptions about anything. I can't count the number of times I've said "That's not possible to happen!" only to find out later that not only was it possible, it happened due to a bug in my code, and that bug came from an assumption.

In other words, I have to have a huge amount of specific, detailed, technical knowledge rolling around in my head just to do the basics of my job well. When I get somebody who is a self-proclaimed non-technical person asking me for answers that require at least some of that knowledge be handed out, I have to mentally change gears and use terms that I know will work to explain that knowledge. Of course I sound condescending, simply because I try very hard to make no assumptions.

The part that I find most interesting to me, in all of this, is one thing that my experience has taught me: The more understanding people have of their own systems, the less likely they are to call me arrogant when I explain an answer to their question.

I care a great deal about making sure I'm understood. There are times when my doing so comes across as rude, arrogant, or condescending. I do not set out to do so, but there are times when I cannot think of a way to avoid it. I actually don't like doing so. To have the insult lobbed in my direction on top of that is more than I can accept. I had to say something.

My final thought on all of this comes from her final remark: "Not everybody is a computer genius." That's correct, not everybody is. Not even me. If you want to find out about a few of them, allow me to give you some names to look up: Alan Turing, Steve Wozniak, Linus Torvalds, Alan Cox, Theo de Raadt, Brian Kernighan, Dennis Ritchie, Larry Wall, and Guido von Rossum. I am not, and never will be, in their league.


Anonymous said...

I'm a network engineer working daily with all sorts of people with all sorts of titles in the IT and IT-related field.

I find that many, many people in our field are extremely arrogant and often have a very condescending tone. I've found that this tone is underlying in even their non-technical conversations. Frankly, it's a pervasive character trait in the industry. I can't stand most of my co-workers for that very reason, and we complaints form our customers from time to time that has resulted in the owner of my company actually having to address this issue with certain technicians.

In addition to our diction, non-verbal communication such as tone and eye contact communicates as much if not more than the complete sentences we speak.

Especially the linux guys. Seriously. Why?

Michael Pedersen said...

I think the question of "why" is a bit harder to answer, but it usually comes down to the maturity of the two people involved.

I have noticed, personally, three stages that people go through in their careers: " I know nothing. Teach me." This gives way to "I know everything, and can fix it. Go away and stop bothering me." This gives way to "I know nothing, teach me."

No, I didn't repeat myself. The first and the last are quite similar. People learn a little bit, and think they've learned everything. Then they find out how little they know, and get back on the learning train again.

When you get someone in that second stage, it's pure arrogance. No argument. But when you get someone in that last stage (and there may be something beyond it, I admit, I just haven't seen it yet myself), everything changes. At least, it does for me.

Yes, I consider myself to be in the last stage. If I am asked a question, I can give an honest answer, even if that answer is "I don't know yet." I also figured out that non-technical people are not idiots, they just don't care about computers the way I do. As such, I try very hard to work with them, to help them understand what I'm trying to say. If they don't know, I'm as gentle as I can be about teaching them, and try to avoid forcing them to learn everything they don't care about.

Now, take someone who has insecurity issues of any sort, and put them with someone who is trying to make sure they can understand what they need to without trying to make them understand byte ordering or other such arcane issues, and the result can be exactly what I saw happen to me: Accusations of arrogance.

Still bothers me to this day. I try very hard not to do it. And it can still happen.

Tina Turtle said...

Computer technicians/programmers/nerds are in their majority, arrogant and they PISS ME OFF. It's not just a stereotype! And if being arrogant wasn't enough, your particular type of arrogance is unentitled. It encompasses being condescending, patronizing, even sexist and/or prejudiced (as the majority of you are male and when dealing with women or with the "non-nerds", you assume they're all "non-technical" -whatever the hell that means, usually that they're ignorant about science or not smart enough to comprehend your "wealth of computer knowledge"). I never get this attitude from my plumber, but you think that you're so much smarter than my plumber, right? How dare I compare you to an "uneducated" "non-nerd" who went to trade school... But the majority of you are not scientists, you are technicians, like the plumber. There's nothing wrong with it; just don't act like you're God and everyone else who's not a computer expert is an idiot.
Let me explain this:
I would be slightly more tolerant with your attitude if you were Michelangelo, Albert Einstein, a neurosurgeon, a chemist, or perhaps an astronaut.
Frankly, you don't need to be very smart to do what you do. Anybody with an average brain who's interested in learning about your field can do your job. And if your measure of supreme human intelligence is Bill Gates or Steve Jobs, you're setting the bar too low.
I heard many excuses for this attitude: introverted, no social skills, being in the autistic spectrum. All this can be true in some people. I still find these shortcomings somehow self-serving. Just like those dudes who beat up their wives and say it's because they have "too much testosterone".
You said you don't want to be arrogant? Bullshit. If you did, you would treat "non-nerds" like you equals. You will assume they have a brain. You will admit the possibility that they might be smarter than you and perhaps have extensive scientific knowledge -just not in the computer field.
Arrogance implies in its very nature a feeling of superiority towards others. Hitler, Charles Manson, and Stalin are/were arrogant. Einstein, Ghandi, and Carl Sagan were not.

Michael Pedersen said...

Reading your comment, Tina, is interesting to me. I have admitted to having been arrogant and condescending. I also don't like being that way. I found out how bad I was a little over a decade ago. It brought me down more than a few pegs.

Your examples and insults aside, I will point out that you can very easily get the same condescending attitude from your plumber, or car mechanic, or even a maid. All you have to do to get it is to show them that you believe you're smarter or better than them. Take your car to a mechanic, and tell the mechanic you have never gotten the oil changed because you know that it doesn't need changing, and then wait for the reaction.

When a person is treated as if their knowledge, their work, their time is *much* less valuable than the requestor's time, then the reactions are poor. For instance, your comments about how I would treat "non-nerds" like my equals makes *worlds* of assumptions about how I treat people. You see, when I talk to somebody about *their* field, I listen to them, and follow their advice. I will ask them if something actually makes a difference (for instance, going to a tax professional and asking if my receipts from my doctor visits matter). When somebody asks me about my field, I expect similar respect.

Instead, to more than a few people, I am not very smart, and not very social, and not very likable, and not very valuable, simply because I have put the time into learning my field, while their field is obviously the most important one to have chosen.

Your response shows me that you would likely treat me in this fashion, and that disappoints me.