Tuesday, May 12, 2015

Coding Is Just Communication

For ages, I mean for just a decade and a half, I have been transforming fresh (and stale) talent for different IT organizations in India. The pool of talent contains both “human” resources and “Robotic Coders”.

When I say “Robotic Coders” I mean those IT professionals who believe that to work professionally, they need technical skills and communication skills. However the catch is that their perception of these skills is a bit different. According to them, technical skills are limited to knowing a programming language (say, Java) and communication skills are limited to “speaking to the client”.

What the rest of the world knows is just contrary to this popular robotic belief. The knowledge of coding is not the only pre-requisite for a good IT professional; it takes much more to be one. What an IT company delivers to a client is a technology and what a typical coder does is just communication. Let’s not forget, communication is a two ways process and therefore; when I say, a programmer communicates with several entities, I mean they speak and write and listen and read and understand too!

Typically a coder communicates with the following entities as a part of their profession.

Colleagues
These are the people with whom a coder (or any professional, for that matter) communicates the most. They include seniors, juniors, peers and all the others (!) from their own organization. The modes of communication are face-to-face conversation, phones, emails, texts, voices, smileys, winks and what not!

This is the communication that is usually taken a little less seriously than…  by robotic coders.

Client and Others
As I said, “Communication means speaking to the client” is a very popular belief among the robotic coders. Of course, a lot of interaction takes place between client team and the application development team, but that doesn’t limit itself to “speaking to the client” alone. As in every other case, communication to the client is multimodal and “speaking” is merely a small part of it.

Although client interaction is valued the most but understood very less. Reason being the same, “communication means speaking…”

Apart from the client, an IT professional communicates with several other organizations including service providers, regulatory bodies, social groups, NGOs, etc.

Maintenance Coder
A development coder communicates with the other users of the code including the fellow team members, maintenance coder and oneself too. The communication takes place through comments, identifiers’ names including variables, classes and objects and the code itself.

Robotic coders usually use identifiers like n1, n2, num1, num2, user_string, input_data, value1, blah blah blah… without realizing that the maintenance coder just can’t decipher these “dumb” identifiers.

End user
The most important but the least cared about person by “robotic” coders! 

Coders are very happy when their code runs and in that upsurge of happiness, they just forget the cognitive level of the end user of the application they are writing code for. As a result, the poor user is instructed to “enter a value” without knowing what the “value” means and when they commit a mistake, they are fired with an error message like invalid entry, out of range, null value, overflow or whatever else that only an IT professional can decipher it. The coder thinks that every person in the world understands IT jargon and IT register and they drench people with their intense usage.

The machine
Things cannot go wrong here… or at least robotic coders think so!

Coding is something that robotic coders value the most without realizing that it’s a perfect example of communication! The code is written in a programming language (language is a medium of COMMUNICATION) that helps a coder interact with the machine. A mistake here stops the whole process of communication.

Robotic coders are very particular about the last instance of communication. They spend almost all of their time and energy in learning communication with machine. Of course, without that they just can’t do their job but that doesn’t diminish the significance of proper communication with the other entities. To transform from robotic coder to more human resource one must learn to communicate, in its true sense with all these entities.

After all, life has many more options than merely “if-else”!