alexcasalboni

My personal thoughts, 2 concepts at a time

Follow publication

Software Engineers & Humans

--

I am a software engineer.
And a human being too.

If you have never distinctively identified these overlapping groups, you have probably never met a real engineer yet.
Or, most likely, you are an engineer yourself.

Warning: these thoughts of mine contain a ridiculous amount of stereotypes. Most of them are not meant to offend anyone, but rather represent a set of constructive arguments based on observations and self-irony.

About Software Engineers

Weird” is quite a common way to define the average engineer, unless you spent some time digging deep enough to find out what makes our minds work differently. It’s not about intelligence — successful engineers are smart, passionate, knowledgeable, some are even wise — and it’s not about social isolation either — you can easily find engineers talking to each other, laughing and networking in their natural environment.

So why do non-engineers find them socially awkward and clumsy?
I happen to have a few friends working in the social environment — as social workers, doctors, psychologists, etc. — and we like to think we are inhabitants of distant planets, holders of different life-lasting goals and values.

For example — within a typical engineering mindset — understanding how to fix something broken is generally more valuable than being able to use it, as much as finding out why and how someone got sick is more relevant and useful than taking care of his/her emotional conditions, during an illness.

More generally, this can be seen as the rational inclination towards global knowledge and shareable information, over personal emotions and individuality. It is not a horrible thing by itself, until its predominance in one’s life makes it hard to be considered as an emotional human being.

Besides this tolerable attitude — which often relates to the scientific community in general — I think the most impactful social deficiency is the (almost) total inability to read other people’s emotions and nonverbal information during a conversation. Apparently, more than 90% of the information conveyed by humans is nonverbal, involving both voice tone (nearly 40%) and body language (55%).

Nothing new, but worth mentioning :)

Personally, I would love to see the same statistics applied to a group of engineers. Engineers typically prefer explicit communication, even brutally direct sometimes, where the verbal content can’t be misinterpreted, and the correlation between what’s been said and its immediate goal is crystal clear. The problem arises when they assume this is the only possible form of communication.

But why?

I think this is a personal trait shared by many other groups of people, at different levels. Still, software engineers seem to be the worst mind readers in town.
Having analysed and lived the daily routine of software engineers and developers for many years myself, I started thinking that computers might have an impact on this behavioural aspect. But again, just using a computer can’t be the point: 4 billion people use a computer every day, and they don’t seem to be all affected.

Therefore, I realised there must be something in how engineers use computers. In fact, we don’t just use computers: we talk to them.

What’s the difference? Well, in spite of being quite a creative process, the act of coding involves some sort of communication between the coder and the executing machine, through an arbitrary programming language. Every line of code — either imperative or declarative — is in fact a machine-friendly version of what humans call sentences. A well-composed set of sentences has the power of conveying the required information to reach a particular goal.

The real keystone is simple: this kind of interface does not allow nonverbal communication. Technically, what you say becomes way more important than how you say it. Also, what you did not say just doesn’t exist, and your body language has no impact on the outcome. Combine this with the human brain’s ability to reshape and adapt its connections and reactions on a daily basis, and there you have a huge fleet of dehumanised coders.

In other words, the more you are good at coding (i.e. talking to machines), the more your brain feels comfortable with strictly verbal communication, in spite of the broad emotional spectrum you learned to identify and mimic during your childhood.

What can we learn from this “theory”?

A few open-ended questions came to my mind.
I don’t have all the answers yet, but I’m looking forward to a future where software engineers don’t need to speak machine-friendly languages and somehow damage their social life.

Was it the same back then, with punch cards?

Do modern programming languages look too similar to actual natural languages?

Will software engineers ever be able to make this interface more human?

Maybe we are focusing too much on the application-layer of human2machine interactions? If so, should we build smarter interfaces for software engineers first, and then help them be mentally closer to the actual final users?

Feel free to reach out to me on Twitter, and read here why & how I’m writing this blog.

--

--

No responses yet

Write a response