Friday, January 29, 2016

Definition: Software Engineer

Disclaimer: The author doesn't demean any job type or role or an individual performing them. Everyone is equally human.

I wish I could play a small video clip in english and show my audience what is the perception of people in my country about a guy going to a glossy building, with an ID card around the neck in a cab. 

let us create an imaginative character and called him Mr. DUDE
His attire:

1. Semi casual pants
2. Some ugly/unprofessional shirt
3. Shoes which can't be called floaters or formal shoes; something like that.
4. A three day old beard
5. An ID Card around the neck or hanging to the belt buckles of the pant
6. Goes mostly to office in a cab
7. Sometimes has a laptop bag

Irrespective of what this guy does inside the building, the entire country thinks he is a SOFTWARE engineer. I understand that education or knowledge is not a thing for granted in this country. I was once walking on the road, after college (during my engineering days) and stopped for tea at a small shop. The adjacent shop guy, enthusiastically looking at my Drafter, asked, "Sir, is that a gun?". I replied, "where the hell do I load the bullet?". 

So in a similar context, I wish to, via this blog, educate my fellow citizens on who does what and why should they stop calling every Tom, DICK & Harry a SOFTWARE ENGINEER!

99% of so called Indian IT people do the following:

Call people and ask when are they going to pay the money back
Receive calls and inform the customer about their ...
... flight timings
... book their orders
... make purchases
... resolve issues
... give information
... complete a trade on your behalf
... etc
Any many other things, where they use phone and PC as tools.

Out of the left 1%
10% of the people are in top management doing nothing but meetings
25% are into IT sales
20% are into Tech Support (pure technical support; pure is defined later in the article)
35% are into system integration
10% are REAL SOFTWARE engineers

So let's define software engineer:

An individual who writes in-depth code to make a new software for a particular business purpose is called a Software Engineer. 

An individual who writes code (low, medium or complex) to make an existing software work for a particular domain/customer is called a Systems Engineer.

An individual who understands a platform like Java, SQL etc and a particular domain (Retail, Manufacturing etc) is called a Software Architect

An individual who understands several technologies (already manufactured software products (viz. Microsoft Active Directory, SAP etc) and probably multiple domains is called a Systems Architect

A combination of Software and Systems Architect is called an Enterprise architect

Now let's define PURE:

There are several people to whom you might call and ask for a password reset or tell them that your keyboard is not working. They are really not into tech support. They are doing something using a computer for which a step-wise document is fed into their brains to do so. 

Pure Technical support people attend to your issues while you are using products which are manufactured by software engineers.

Example: when you are using your MS Windows and you see a blue screen of death, they analyse the logs and the error codes and try to fix your PC.


So ...
please do not address everyone with a tag around their neck as software engineers. I do not say that it's an offense but calling you a plumber when you are an electrician is not right. 

Not all in IT and non-IT are perverts. The women in the industry are not S**ts. We just wear some modern clothes and still respect our modesty. 

A snippet to show how pervert the directors of Tollywood are ....