Digital Minefield

Why The Machines Are Winning

Archive for the tag “Empathy”

Oh, The Humanities!

In 1959, British scientist and novelist C. P. Snow gave a lecture titled “The Two Cultures.” He said British education was split into Science and the Humanities—and that the latter saw itself as superior.

His critique claimed the essentials of the Humanities were the central pillar of British education, and that most educated Brits thought the essentials of Science as little more than incidental.

The lecture became a widely read book, then a widely discussed controversy, and even another follow-up book. In less than sixty years, it is not only forgotten but the tables have completely turned.

Today not only is Science king, very few people (even outside of Science or Technology) see any value whatsoever in the Humanities. As I said in my post of July 20, 2015, “The nerds have won.”

However, having everything your own way is rarely the path to victory. I could just mention the name Midas, or point to the endless stories and fables meant to teach us a little wisdom.

I could give endless examples of how our technology could be improved by adding a human element. There are many related to programming in this blog. However, the big picture are the robots that will be built on the assumptions of artificial intelligence.

The intelligence sought by AI is abstract. AI scientists don’t see the distinct value of human intelligence. They think that somehow a machine can make decisions or solve problems without a concept of self, without consciousness—without empathy for humans.

Empathy is exactly what our current technology lacks. It can be learned directly from experience or indirectly from education. But it can only be learned, directly or indirectly, from humans.

Intelligence without empathy is merely data. How many times have you heard the phrase “thinking outside the box”? Einstein said, “The true sign of intelligence is not knowledge but imagination.” Using imagination is box-free thinking.

Wikipedia defines “[I]ntelligence … [as] logic, abstract thought, understanding, self-awareness, communication, learning, emotional knowledge, memory, planning, creativity and problem solving.” Yet, without imagination, all of these are useless.

Imagining how humans will respond is necessary for human-friendly technology. If we can apply our humanity, we can empathize how people will feel using a technological product or device. We can, if our science is balanced by our humanity.


Women Programmers

In an era short of capable programmers (this one), we often hear the question, Why aren’t there more women programmers? Having observed major changes in the industry in recent years, I think a better question would be, Why are there so many male programmers?

In my post of June 15, I described programmer character traits. I think if we examine these as to gender, we can see the negative effects of intellectually capable but socially awkward nerds.

For example, nerds overdo the positive character trait of Problem-Solving. Brain teasers can be fun, but too much becomes an anti-social obsession. Any positive character trait carried to extremes can become a negative.

Persistence is necessary, but when focus on a problem becomes so narrow that a programmer can’t admit he needs help, persistence is no longer positive. (I use the masculine pronoun because far more men have this failing.)

Another thing that defines nerds is a foolish pride in their own cleverness. As I said in the post of June 22, “[c]lever programmers rarely see beyond their own egos. They would rather their code dazzles the user than be transparent and do the job with a minimum of fuss and muss.”

In the post of June 8, I pointed out programmers need more than logic. They need clarity, empathy, and imagination. Unlike most women, nerds are unaware of the feelings of others. They are apathetic not empathetic.

Women programmers care about the users of their code. Nerds only want to impress them. The immaturity of nerds creates a need to feel superior to users. Women care about the user’s experience.

Our society has become so dependent on computers, we’re willing to tolerate the social inept as long as we can pick their brains. This is cute when sub-teens help a clueless adult figure out email. It’s something else when it’s the prevailing climate of the programming workplace.

By focusing on code instead of users, computing has become dependent on nerds. Our attitude towards technology is now the nerd’s attitude. Social media has replaced face-to-face interaction because nerds find social risk uncomfortable. Movies are no longer character or plot driven—they are CGI driven. Nerds seek style over substance. And so it is in programming.

Because most aren’t nerds, there are too few women in programming. Nerds dictate the climate. They don’t need to be in charge or make the decisions, because they define the choices for management. The nerds have won.

More Than Logic

Last week’s post said programming was “More Than Engineering.” I believe there are eight essential programmer character traits. Four are positive: Persistence, Problem-Solving, Planning, and Play. Four are negative: Pride, Pedantry, Perfectionism, and Prejudice.

Beyond character traits, which can be enhanced or suppressed, there are three additional skills that programmers must practice to their utmost. These are Clarity, Empathy, and Imagination.

Clarity is a two-fold goal. The behavior of the program and expected responses from users must be clear and unambiguous. Also, the code itself must be clearly written for any programmer to maintain it.

Messages, especially error messages, are useless if not clear. A recent attempt to copy a file told me only that it could not be copied. Was this a source or a destination problem? I could see the file wasn’t copied, so what was the purpose of the message?

The computer equivalent of putting yourself in another’s shoes is to put yourself at another’s screen and keyboard. Empathy, in programming, is more than a feeling. It’s goal is to anticipate how users will respond to your software—on their machines.

The purpose of multiple windows on a screen was not conceived so each window would take over the whole screen. Yet, that’s what I often see. Graphic User Interfaces are highly customizable, but many programs ignore the possibilities.

My personal pet peeve is windows that ignore the location of the task bar. It can be top, bottom, left, or right, but more than half the programs I use expect it to be at the bottom. (Good if you sit above the screen looking down. I sit below and look up.)

While clarity and empathy are crucial, it takes imagination to create a proper response for every possible situation. Users interact with a total environment, not just this program’s code.

Aside from the purpose of the program, and the myriad things that can go wrong, there is the universe of possible program events—including the illogical. The goal of imagination is to make it more likely these events will be handled safely.

Finally, let’s return to the last character trait: Prejudice. I mean this in the most general sense, i.e., all assumptions are bad. Lack of clarity assumes a message is clear when it’s not. Lack of empathy assumes every user’s machine is just like yours.

Assuming the unlikely will never happen and therefore needs no code to handle it, cripples imagination. Nothing makes code worthless quicker than programming only for the probable.

Post Navigation