SEARCH

National » Karnataka

Updated: April 8, 2012 09:17 IST

Low-end coding skills, really?

Comment (12)   ·   print   ·   T  T  
Ramesh N. Raghavan
The Hindu Ramesh N. Raghavan

The phrase ‘low-end coding skills' is one that is often used by chief executive officers and other senior management members of the Indian IT industry, often in the context of “moving up the value chain”. This has also become a frequently quoted phrase by journalists covering the IT sector.

I am writing this article to dispel some myths around “coding skills” and place some facts about how difficult it is to really find a good programmer — that most critical cog in the wheel of software development.

Less than 25 per cent of the engineering graduates hired by IT service firms will be able to write a 100-line programme in any language to solve a given problem. Colleges lack good faculty who have practical experience in programming. Learning to programme is similar to learning to cycle or swim. One needs to try solving problems independently, thinking of the algorithmic steps, then implementing it in a chosen language, and testing and debugging it thoroughly to make sure it works. Time spent in this cycle results in learning, and hours of sincere practice produces a good programmer.

College courses don't have the required assignment/ project component to put them through this process. Many students memorise the sample programmes. Imparting good programming skills to engineering students is one area where the industry probably needs to step up and support.

Some organisations have understood this and have ensured that their training programmes for campus graduates are long enough to produce programmers. But, quite a few others design their modules with a premise that the engineers they have hired possess basic programming skills. They try to impart higher order skills, which are either domain skills or skills around specific application packages.

The IT services industry is under pressure to reduce unbilled time, and this puts pressure on the training departments to “optimise” their induction courses. There is also a move to de-skill the job so that you won't really need a programmer. It works to some extent in package implementations, but to develop custom logic, we need the “real” programmers to get the job done.

In projects that need a much higher percentage of original code development, the skill gap is a serious challenge. A long-term career path for engineers doing de-skilled activities is questionable. Real programmers command a premium in the market, evident even in the campuses. Today they can be afforded only by multinational companies doing product development with non-linear business models.

I am not belittling any of the higher-level domain skills that one needs to provide innovative solutions. But, to deliver such solutions, we need the right set of programmers who can write quality code with good productivity (as measured by features completed and not metrics like Lines of Code).

In our eagerness to stress the need for domain skills, consulting skills, let us not devalue the most critical skill needed to produce software. Such statements by the CEO only add to the woes of those managing SW engineers as everyone wants to stop coding as soon as possible.

Automatic code generation and code reuse are ways to reduce the need for programmers, but engineers still need basic algorithmic thinking to use the modelling tools and reusable modules.

Let's respect this poor soul who is the foundation on which the IT industry is built and not belittle him or her by referring to the skill they possess as “low-end coding skills'. Whenever an IT CEO uses this phrase, I shudder; because it shows how disconnected they are from the ground reality in the projects that their organisation is executing.

(The author is an architect in an IT services firm.)

More In: Karnataka | National

A well written article and I understand your frustration. This is not
the case only in the IT Industry. These problems are there in every
industry and we have to live with it. Many firms are not caring about
the customer satisfaction. The students are always thinking about the
pay and the extra perks and not about the work. They are not taking any
pressure/ responsibility on the work

from:  N.Sundaresan
Posted on: Apr 15, 2012 at 23:44 IST

I understand the need for good programmers in development or maintenance projects. But the reality is that most of the current work done by IT services companies do not fall under either of them (development or maintenance). So this is the reason why companies are hiring graduates who can simply test with a few exceptions where they are able to learn some sort of scripting for the task. Over the course of time these people are put into challenging projects and whole of the project suffer resulting into customer dissatisfaction. The good news is that some companies have realized this and again focusing on the technical strength of their people.

from:  shivps
Posted on: Apr 11, 2012 at 09:30 IST

A well written article ; very good inferences to the value we should attach for basic programming skills, and more importantly, the level of rigor that needs to be imparted in skilling fresh joinees. A few additional thoughts:

1. The IT Services industry seems to be moving towards a Factory Model, I am reminded of a Factory and Assembly line, where people with emotions are being turned to "resources".

2. Most people who are joining such companies are not passionate about Engineering/Programming ; IT is just a nice convenient place to make easy money.

3. The current players in the IT services industry is directly responsible for 2 above.

4. Customers negotiate tough; and constantly push us for lower and lower costs per person, which leaves us without much choice in negotiating for higher skilling ; unless we can truly move up the value chain.

Do our IT players really want to move up the value chain? Factory is convenient, needs only migrant workers and Supervisors.

from:  Ullas Ponnadi
Posted on: Apr 10, 2012 at 17:08 IST

There are primarily 3 ways any product can be developed:
1) Use of COTS product completely with customization
2) Use reusable components & open source libraries as much as possible but code the business logic
3) Write everything from scratch.
Twenty years ago, people followed the third approach as the other two options were not available/not mature.
In the current era, the need for third option has reduced drastically as the other options are available or have matured or forced to take to save efforts/cost.
Once the need reduces, people focusing on these skills also will reduce naturally. But it does NOT mean people have to stop practicing real programming skills.
The percentage of real programmers needed is less for large service oriented companies, which is anyway reflected in their hiring process.

from:  Ram
Posted on: Apr 9, 2012 at 14:04 IST

A very pertinent debate. An American colleague of mine once asked me, "Is getting promoted and having a certain designation a big thing in India?" I replied that it was indeed so. He then asked me, "People want they roles changed every two years. How can they learn anything in two years?" Very true but then the whole attitude has become, "If I coded for one project, I have been there, done that. Let's move up the ladder now." Then it becomes only management!!

Without some top quality coders, you are not going to get top quality designers and then top quality architects. As Venkata had mentioned even the big MNCs have lot of de-skilled jobs. Not sure how this trend will be reversed but sad to see people losing enthusiasm for learning at an young age!!

from:  Suresh
Posted on: Apr 9, 2012 at 11:58 IST

I am with you on the value / importance of imparting logic to get to the solutioning aspect. On the side of educational institutions there are huge gaps. Graduating in US / UK Vs graduating here. I was given an open book exam in my undergrad education. But, i flunked becos the solution was not in any book. But, application of concepts that my Professor at OU (USA) taught me. I accept my concepts were bad. But, at times education seems to create an over confidence that overides us and accept the fact that I have much more to learn and everyday I have to keep learning else, i am out....Overall a learning culture needs to be a part of education. And surely, a programmer (Good) cannot be termed to have "low end skills". The stats are clearly available for all. Availability of skilled workers is diminishing and who is to take preventive action. I feel it starts from education institutions and goes down to organisations and the individuals themselves for a better professional health.

from:  Arvind
Posted on: Apr 9, 2012 at 11:48 IST

As you rightly say the urge of factory model is so great people forget that coding is partly engineering and partly art. Re-use too is greed driven concept. Recently when I met a person from industrial world where safety is critical his reaction to reuse was revealing - many from pure SW world would find hard to reconcile with.

But not all is lost. Here in Pune, UoP's Dept. of Electronics conduct 6 months post graduation programs that focuses on project work. My experience with students from there has been very good. Essentially it's time we senior share the knowledge with youngsters. What Venkata observes may be true of young engineers coming from premier institutes but not so surprisingly students from class B, C cities show much more hunger as they are deprived of opportunities. That is another silver lining. Yes they may not be polished with English, but hey Germans, Russians, Japanese, Koreans and off late Chinese excelled in engineering without it and is not so big deal.

from:  Snehal
Posted on: Apr 9, 2012 at 10:04 IST

Lot of people might feel that this is an old school thought in this fast
paced life/economy, but this is a truth. Instead of nurturing the basics
of your programmers, either we feed them more than what they can eat
(force feed) or confuse them with conflicting statements at different
levels. Let all of us not forget that however big the journey is, it
always starts with the first step!

from:  Tinku Malayil Jose
Posted on: Apr 9, 2012 at 08:09 IST

People go to Computer Science without having any analytical and problem solving skills. They don't have aptitude for critical thinking. These students come from schools with really bad teachers who are unfit to be teachers in the first place. Most think that once they have a degree, they will get a very high pay but without satisfying the needs of the company. Unfortunately, this is true throughout the world. Those who to IITs come from highly respected schools with both parents having a motivation and degrees. Also, no one knows how to teach these students to talk nicely, enrich their vocabulary and develop inter-personal skills. There are lots of problems with these students and finding a solution is almost impossible. But who cares?

from:  Rajeev
Posted on: Apr 9, 2012 at 04:05 IST

I would have to differ with you on your observation about multinational companies doing product development being able to afford real programmers. My observation based on personal experiences is that, many multinational product development companies (operating in India) do de-skilled jobs, and they do not need good programmers. In a few cases where they do need good programmers, they do not have them. The best period of my working life was when I was working as a contractor from a IT services company, for a server vendor of that time. That is more than 10 years ago now, and it has been downhill since then :-( I remember that we (youngsters back then) valued learning and looked upto certain seniors not because of their stock-option-millions. I see neither the eagerness to learn around me now, nor anyone to look up to :-(

from:  Venkata
Posted on: Apr 8, 2012 at 20:41 IST

I think there's a couple of things at play here - the demand-supply
curve of the ecosystem that the author is referring to i.e. the IT
Services space in growing economies like India where there is a
conscious drive in certain product entities to move up the value chain
from services to products; secondly the slow-yet-sure shift that is
occurring on the human talent front: in scaled (volume) service
providers towards recognizing serious technical chops which was not
the case 5-10 years ago where as companies were scaling too fast, the
focus was on managing teams more than keeping up and rewarding
technical skills. The perspectives referred to here are different
depending on which end of the gamut a viewer is positioned - the
product companies are hiring the cream of the technical talent from
engineering schools, leaving companies that worry about scale to take
care of "bridging" the gap between aptitude and programming skills.
This effort shouldn't be taken for granted!

from:  Mukund Srinivasan
Posted on: Apr 8, 2012 at 18:37 IST

I understand your frustration, but you're quite naive to presume the majority of college students studying programming are just going to class and taking tests. Almost every successful grad I know has been doing real-world internships, working on real projects, for big names like General Electric Aviation to Garmin to Cerner to Google, many of them for three or more years. Don't elevate your pragmatically-inclined programmers if it is solely at the expense of the degree-seeking programmers. It is unfair to both groups.

from:  Dillard Cook
Posted on: Apr 8, 2012 at 11:57 IST
Show all comments
This article is closed for comments.
Please Email the Editor
The Hindu presents the all-new Young World

Bangalore

Mangalore


O
P
E
N

close

Recent Article in Karnataka

House panel to look into irregularities in power purchase

After dilly-dallying for a fortnight, the government on Monday accepted the demand by the Opposition Janata Dal (Secular) to constitute... »