Monday, November 21, 2011

(Vicious) Software Circle?

Although I am not a firm believer of the hypothesis of Karma but it does seem we land up almost at the same place where we started from.
Indian software industry is pretty much a circle (I won't go up to the extent of calling it vicious) and it's hard to escape it.
Rajesh a software engineer for past 2 years got frustrated from his job, Since past 2 years he was working for the same company and working on the same client account, he was assigned to the maintenance of an application. In between for 3 months he was assigned to an internal application development project but that was it.
Rest of his software career has been stuck with the tasks of monitoring application performance, check that the application down time shouldn't exceed more than a couple of hours, fix any defects that come up and some production critical bugs needed to be fixed at any hour of the day. It so has been the case that he has been woken in the middle of the night and early morning (as early as 4 AM) to fix some production issues.
This wasn't the life he dreamt of when he passed out his software diploma (and with decent grades) course.
Like most other students of his class he has dreamt that he would be involved in writing Softwares that will have high business impact and if he gets a chance he will write his own browser or at least a compiler which would be widely accepted or may be a social media application which will be at least twice as good as Facebook.
But then after 2 months in which he couldn't get a job (primarily due to his grades and the aptitude questions he messed up), he was forced to take the first job that came his way.
At that time he was happy that he at least got a job as it was becoming difficult by the day for him to sustain in the big city and he was getting more inclined towards joining a call center job for the time being.
The first month in the new company went in the training and orientation and he was enjoying it. Once the training was complete he along with his 2 other batchmates were assigned to a project which was already developed and needed some bug fixes. There were already 3 people working on the same, he came to know they were part of the development team of that project.
He was happy that he would get to learn from this world class project and the experience of his seniors.
'Freshers' as they were called started with the ramp up of the application and slowly and gradually Rajesh started getting a hang of the application after spending many nights and early mornings in office.
In the mean time one of his batchmates left citing the reason that he has to go back to his hometown and find a job there as his parents don't want him staying away for long.
Things started happening fast, understanding the application, talking to the client, debugging the application, getting to know the architecture of the application and getting to know the usual defects that crop up every now and then and how best to address those defects or at least make the testers understand that it is not a defect.
After around 1 year suddenly one day he realized that the seniors have moved out of the project and he was left with his other batchmate all by himself to handle the project and continue fixing the issues.
By now he was aware of the term and heard it many times 'Application Maintenance' or 'Production Support', when he joined he was told that it was a project, now he was slowly grasping the concept that though everything is called a project but not everything that happens inside a software company is a project and specifically the one activity he was working on is called Maintenance and it has no end date.
He wasn't unhappy with the company he was working for nor was he too unhappy with the salary he was drawing and moreover it being his first company he got all too attached with it and made several friends, nevertheless he wasn't enjoying the work now. He knew all the things in that application that were to be known and the work became mundane, even if somebody told him about a defect in his sleep he can possibly suggest 2-3 options where in the code to look for to fix that defect.
He has discussed with his manager about moving to a live (development) project and his manager has assured him that he will look into it as soon as there is someone to replace him in the maintenance project but it never happened.
And after a lot of thought and discussing with his friends & mates he decided that it's time for him to move out of the organization and find a new company which will offer him better projects.
And so he switched jobs...
He mentioned clearly during his interviews and negotiation that he was looking for development projects and the reason for leaving his current company was not money but because he was assigned to a maintenance project for far too long and he didn't wanted to be stuck with it.
He was assure that he was being assigned to a large project which is already underway and that from day one he will be 'developing' something.
Rajesh was happy about it and thought his decision was worthwhile and although it took him some courage to leave his first company and all his friends behind but at least it will be good for his career.
As a ritual in every company he went through an orientation and ramp up of the project and technology the project was using and after a month he was assigned to work on the project.
As he understood that project was going on for past 6 months and he was assigned to work on a new module, the requirements for which has come in recently. He was part of a 10 member development team and he started the work with a new zeal.
As always the deadline were too strict and the team had to work a minimum of 12 hours a day and sometimes on weekends too. But he wasn't complaining as he was enjoying being a part of development team and had a sense of achievement ( I created that page, I worked on that module).
Hours flew, days flew, months flew and before he realized it, Rajesh has completed 4 months on the project and the project was coming to an end.
Slowly few members of the team were moved out as the work wasn't remaining much and now he was working with a 4 member team.
One Monday morning Rajesh's manager called him, he was skeptical as to what it was regarding as in the past 4 months of him being with the team, he has hardly interacted with the manager once or twice.
As he sat down in the manager's cabin, the manager began, Rajesh you have done a good job on this project till now, in the short time you have learnt a lot and the client has also appreciated your work. Rajesh was very happy listening to all that appreciation and wanted to shout at the top of his voice.
But the manager continued, as you know that the project is finished now, Rajesh nodded.
So from tomorrow we want you to work on the support team of this project along with Mandar and Reema.
All that could come out of Rajesh's mouth was "excuse me, but why?"
Without giving much attention to Rajesh's manner of asking or his expressions, the manager replied while picking up the stapler from the ground, simple Rajesh, because you have done a good job, you know the entire system, the client is happy with you and other members have been moved to other project. We need someone reliable for this project and who better than you? do you disagree?
Rajesh was flummoxed, he didn't understand what is he supposed to reply, he wasn't sure if the manager was appreciating his work or ridiculing him. Is he really assigning the maintenance work because his work was good or was this a punishment in a way.
While he was thinking all this, the manager stood up with a notebook in his hand and walked out blurting out "I have to run for his meeting, so you get started and let me know if there are any issues. Hopefully you will continue to work with the same commitment level".
Before Rajesh could open his mouth the manager has eloped in the elevator.
A colleague shouted "Rajesh, what happened?" while sharing a smoke. He asked again "What happened Rajesh? why are you smiling?"
Rajesh smiled again, nothing much I was just thinking if like life, does Software also come a full circle.

Thursday, August 04, 2011

Are the software companies making young graduates unemployable?

The software industry in India has grown by leaps and bounds in last 10 years. IT/ITES sector has become the major job creator sector.
A few years back (even today in some parts) a Software job used to be a dream job of any fresh engineering graduate coming out of college.
Today software companies employs hundreds of thousands of young men and women.
But are the people working in these organizations really growing intellectually? Are they getting any sharper compared to when they passed out of college.
Are these engineers providing any solutions? Or are they simply getting turned to another coder, developer, tester or whatever they call it in the IT companies.
A fresh young graduate who has dreams of changing this world lands in a software company and 9 out of 10 times that's the end of his dreams.
He gets moulded and typecast into a code churning machine, where most of the time he is copying and pasting and hardly 2% of the times he is using his brains to find a 'real' solution.
The software innovations and solutions are being given by 1% of the whole software population in the world and out of that 1% too 99% sits in the US.
So at the end of the day there is no intellectual growth, there is no sharpening of skills (except for copy and paste) and there is no innovation at all.
In addition, companies come up with their own frameworks, their own tools which the employees have to get used to and after working for an year the employee becomes one of the robot in the army of robots.
If he switches job, that tool's knowledge is not worth anything in the market and with that knowledge and skill set he becomes unemployable in the market, he will need to again go back to the books to prepare for an interview and once again when he is recruited to another company a new tool, a new framework is there to learn. All the theoretical knowledge is for nothing.

The problem becomes acute when you consider that how many bright minds who could have innovated so much, could have been a solution provider, gets stuck in this system which renders them useless for any other task.
Just because of a good job in software company, thousands of people even change their stream to computers from civil, mechanical, electronics, etc.
If these people would have remained in their original streams they could have benefited that stream so much with their knowledge and expertise.
Also if there is proper platform provided in the software companies for these young employees to showcase their talent, encouraging and giving support for their innovation and work could be assigned as per their skill sets then we can have many good engineers and solution providers, who will change the entire game and will lead our country to the next millennium where we would be the solution providers and rest of the world would just copy and paste.