Monday, August 10, 2015

Common Sense Isn’t Common!

I was interviewing a young girl today for trainee Java developer’s position and to open the discussion asked her to tell me briefly about herself.  Before responding to my query, she asked me if she can speak in Telugu (her mother tongue). I said OK but asked her to try to speak in English as much as possible throughout the discussion. I also explained her that inability to speak in English would not negatively affect her present job prospects as long as she is willing to learn English.

Very soon I found that she wasn’t very good at expressing anything in any language – English or Telugu. She had passed B Tech in electronics over a year ago and has been trying “Groups” (Government officers jobs, as I could correctly guess) since then and had “wasted” the time and therefore couldn’t find any suitable job. Presently, she was willing to work in IT industry as software developer.

The questions I asked her and could not get ANY response included:
  • What is required to be a successful IT professional?
  • What is required to be a successful “Group-2” officer?
  • What is required to be a successful homemaker?
  • What are your strengths?
  • Why do you want to work in IT industry?
  • What is the relation among your 1. Engineering in electronics, 2. Your interest in Government jobs and 3. Your present willingness to work as software developer?


I wonder, what may be the reason of a qualified engineer’s inability to possess and express opinions about something so obvious and personal. The questions weren’t about rocket science; they were just common sense and opinion based.  

They truly say, Common sense isn’t common! 

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”!