Communication Is Key
Humans have a lot of things on their minds, and we are still getting surprises from what the mind can do. That is pretty much what made life interesting.
You could see something coloured yellow, and others disagree. And from that, you know that we perceive the same thing in a different ways.
That is why we have to understand when we communicate we get to prepare ourselves to know how to communicate, with an audience.
Funny illustrations can be found in this user-centric monitoring article
This show how developer monitor their application from their application perspective, but that is not what their customer perspective. So there is indeed miscommunication occurred.
So how could we prevent that?
First of all, you need to understand who are you dealing with. If you’re dealing with computers, do you know how a computer works? how do they perceive things?
If you deal with a person, do you know how they perceive things? A simple miscommunication could easily lead you to a place where you don’t want to be.
Setting a clear context and expectations
clear expectations and context from the beginning would help the communication established nicely, for example, the reason why C Programming Language is designed with a header file, is to set common expectations either for other programmers that read it, or the compiler that is going to interpret it to a computer.
The header file eliminates the labor of finding and changing all the copies as well as the risk that a failure to find one copy will result in inconsistencies within a program. In C, the usual convention is to give header files names that end with .
Without clear expectations between two parties, there is always a big chance of miscommunication. Which happened every among humans or computers.
You always want to set a clear expectation of what the other party expect to receive, and one big important thing that would help with that is empathy. Without empathy, it would be pretty difficult to control how the receiver perceives what you’re trying to communicate.
In the Software Engineering world, it might be simpler, since computers understand math, and math is a precise language. But we humans, don’t talk math, that is why it takes more effort to understand who are you communicating, with and how they’re going to perceive it.
Closure
We interact with everything in our life, other human beings, animals, computers, plants, and foods. And we are all built using the same physical attribute forming chemical reactions and becoming biological creatures and living in a society.
It wouldn’t hurt you to try to understand others :)
Bonus references: there are multiple archetypes of software engineer which probably would help you to understand beforehand