Indian Software Industry’s Pangs


By Ankit Chandra

If you throw a random stone in bangalore, it will either hit a dog or a software engineer…

This is what I was told in 2000 when I began my software engineering. It was a weirdly funny joke, coz I did laugh at it, but I certainly did not like our comparison with dogs. Not only because it is derogatory (similar to the lines of objections on slum’dog’ millionare) but also because engineers are by the very definition of the term, very well educated.

umm well educated? but as soon as I say this, I see my head screaming out against it. So something has to be wrong somewhere…

Some engineers are downright called ‘unemployable’ by the multinationals. But lets face it, passing 4 years in an engineering college would atleast have taught them basic levels of coding. Although this was not quite true in my case ( I probably wrote my first respectable software program only at my first job, but that taught me a lot, and hence this post…), but I would say that most of the software engineers would at least know how to code.

So whats the problem? its like a student who knows the alphabets well, but has no clue about how to form sentences with them. On top of it, forming understandable sentences from it is mostly just a dream. As more and more Indian software companies claim to provide ‘best in the industry solutions’ to the world outside (through getafreelancer.com, rentacoder.com and what not), particularly the western economies, their cracks begin to show. For they claim to know how to make software, but they actually just know how to code. And the bubble bursts…

Bigger companies like Infosys, TCS etc charge the western world enough money to send these new s/w engineering grads to almost a year of training, which makes them at least employable. But people who don’t/couldn’t make it into these are basically ‘let loose’ out in the big bad world, having nothing more than a vague imprint of ‘Let’s C,C++ by Yashwant Kanitkar)…

The point being, there is a lot more to software engineering than just code.
To begin with, there has to be an understanding of the context in which this software is being written. Without this understanding of context (business sense in other words) a software engineer is nothing more than an automated code generator (and they are usually crappy). A lot of this happens purely out of lack of exposure to good business practices and incompetent business acumen. But both of these can be acquired; latter even quicker.

This has to be coupled with acceptable levels of communication skills. And communication skills DO NOT mean using a thesaurus on every word and writing the most impressive word. It is about CLEARLY stating what you want to communicate, and making sure that the reader/listener has understood it well, and then confirm it.

Third is diligence. Remember that your aim is to get the work done. Not to get money to procrastinate the work for as long as possible. The client is not a fool to let this go on forever, more so for smaller project based companies where lock-in is very minimal. If a software company wants to sustain its business for longer than a few years, it has to finish the work ON TIME. if not in time.
The basic point being, a lot of small Indian software companies are coming out as promising something and delivering something much below the acceptable standards.

One of the ways in which the problem can be fixed is by having both business and technical expertise in a company. Only a bunch of engineers running day to day business will be a bad decision. Hiring an employable Technology Management MBA could be a step in the right direction.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s