It's a topic that has been often debated - that India's tech industry is a lot like the Chinese manufacturing phenomenon - Low cost, reasonable quality, minimal innovation. I came into the contact of an employee who was previously working in a huge IT company of India (what the heck, it was TCS) and have been there two years, developed certain opinions and concerns about the direction of India's IT revolution. Now she is doing PhD from Clemson University, US. I would like to express my views which were formed with my discourse with her.
Here's how Indian IT companies operate (Infy, TCS, wipro and the second string such as mastek, satyam, patni etc). Hire engineers in bulk, never mind that they are not computer scientists or electrical engineers - if they can write a few lines of code in C/C++ and are academically decent, they're hired. After all, they dont need brilliant engineers - just people who will do as they are told and reasonably intelligent enough to get the client's work done, and bullshit their way out of it if they don't. They'll rarely make CAD software for Electrical engineering or mechanical engineering. Instead they will develop "end to end solutions" for banking, finance, inventory management, website development, etc. By develop I mean code, not design - there is a huge difference between the two, something which I will touch upon shortly. One important thing to note is that the HR in most IT companies dont give a damn about individual interests. They will put you wherever they need someone to slog for them. I've had one HR person tells me that they will put me in a project where they get maximum money, regardless if I am interested or not. And they wonder why so many people leave!!!
What is the nature of the work? At least 70% of the international projects in most indian IT companies is maintenance - i.e someone else has already developed an application. All you need to do is add more features/change behaviour as per client's request. Then there's production support, which is worse. It is almost call-center work - ensure that the application runs normally and if it fails, get it up and running ASAP. Take calls from the client, update on the status. In a sense, like a car mechanic - I did not got an engineering degree to be a car mechanic - I got it to design the car! Finally, if you are lucky you get development - write code. But then, writing code is easy - it is like manufacturing a car. What is not, is designing a system that works efficiently. Typically, foreign clients get the design done by the likes of Accenture, IBM, etc. The designs are then sent to desi companies, who actually do the coding at a cost much cheaper than IBM or accenture. Thus, all we do is donkey work. It is not technology - it is programming. Technology is a new idea, paradigm or design - programming is implementing that design. Thus, most of the people in IT waste their engineering degrees, doing mundane programming, until they are made project managers - after which they spend their lives approving timesheets, conducting appraisals and sucking up to the client . Wait a second – should not an experienced IT professional be doing advanced stuff and leave the bullshitting to MBAs?
Why is it so hard for desi companies to do design? The've not tried hard enough (yet) to get into this space. They just dont have the competence to get the job done. Desi companies are amazing at procedure oriented projects - if there is a procedure in place telling us what to do, we can do it. They dont have the experience (and therefore the brand equity) to attract IT consulting projects. Consulting is largely a reputation driven business. In order to build such a reputation, desi companies need to hire high-flying consultants - they dont come cheap. Even after all this, there is no guarantee of results! (Lately, Infosys is trying to get into this space) How many software products come out of Indian cos? IFlex is the only company to have a product successful worldwide. Making products is expensive and again, there is no guarantee of success - why risk it when services give me an assured income?
Why do we need to get into high end IT - consulting and products? Simply because the algorithm of low cost, low margin services will run it's course in the future. As pay scales rise in india and the rupee appreciating wrt the dollar, margins become more and more slim. In time, India may not be as competitive as say Brasil or Russia - the American cos will take their projects out there! U can see trends in the manufacturing sector - earlier Taiwan was the manufacturing base for American cos, then South Korea and then these days, China. For too long have we been stuck in the procedure oriented IT services. It is time to invest in consulting and products, and take Indian IT to the next level, or else it Indian it will remain stuck in this low end nonsense.
Indian companies thus have 2 choices - identify and set shop in countries where the low cost, low margin algorithm can be applied (TCS seems to be taking this route) or enter into high end IT, which is independent of geography (Which Infy is trying). I believe the latter is the better route - it is a high margin business and reasonably high tech. What is even better, is coming up with technology - like Java, efficient databases, advanced operating systems (Like Sun, Oracle or Microsoft). That is real tech. It's not that we can't do it. It's just that we dont want to risk it. But, nothing venture, nothing have! Desi companies’ dont even do proper R&D! Finally, a true story. Taiwan Semiconductor Manufacturing Corporation (TSMC) was huge in the chip manufacturing industry, making almost 60% profit. They could have got into chip design, and potentially, designed low cost chips. However, design is a risky business - what if the chip bombs? TSMC chose to stick to it's core competence - fabrication. In time, TSMC's profits have declined to 20% or so... they're still number one, but don’t make as much money as they used to... Are we learning yet?