About indian programmers

I recently read an article called Bad Indian Programmers. This article is written by an Indian programmer, so of course it’s not about how bad they would be but rather about why the perception is wrong. I’d tend to agree with some of the comments on this article that as a customer it doesn’t really matter why the supplier delivers good or bad quality but whether the quality you get is what has been agreed upon.

And I think this is the main issue. I’ve been contacted by multiple Indian software companies over the past few months telling that they have great web developers and asking whether I would be interesting in contracting them. Once you look at their web page, you first notice that it’s very often not complete and that their homepage is actually pretty bad. Does it mean that Indian programmers are just as bad as their reputation ? Well, not necessarily. I think you first have to understand that IT is still a booming industry in India (remember the late 90s in the US or in Europe). On the one hand this means that always more students study computer science and that the ratio of truly gifted individuals goes down. And as it is a booming industry, the number of companies and individuals who actually do not have a clue about what they are doing increases. It’s not a specific Indian phenomenon but it’s what also happens in countries with a real estate boom where many of the building companies actually do provide bad quality work.

When you consider this, you also have to know that although programming might be considered by some people as just typing code in an IDE, it is in fact something requiring highly qualified people. Thus, there is a huge difference between a good programmer and a poor programmer. It’s of course difficult to quantify this. My experience is that there is a ratio of about 20:1 between top and worst programmers. This is a phenomenon you can observe in any industry producing any kind of goods. You can buy a pair of shoes which will go in your trash can within a few months or buy one you will be able to wear for many years.

What you have to keep in mind is that you only get what you pay for. So if you get a dirt cheap guy to write code for you, you’ll just get dirt cheap looking code. You can get a new car for a few thousand dollars but you can’t expect to get a Ferrari, a Porsche or even a BMW. So of course to some extend the difference in cost of life in different countries can allow companies acting globally to get about the same quality for less money by outsourcing to a different country. But you have to understand that the job market has also gone global. So if you are a very gifted programmer and can get $80 or $100 an hour in a different country or stay where you are and get less than half, you’ll end up moving to a different country or staying where you are but charging more.

Whenever you buy something much cheaper, you have to ask yourself why it is so cheap. Many may think that they are very smart and just managed to find that one great offer. But very often is that what you save on the one side introduces some hidden costs or trade offs on the other side.

Another factor influencing the quality of the code produced by programmers is that all educational systems or IT ecosystems have different strengths. For example, Indian programmers tend to be good at math and logic. On the other side, American or European programmers are (still) better at Web programming than many Indian web programmers. It’s of course a general statement that doesn’t mean that you cannot find a very gifted web programmer in India. So you need to learn what the strength of your different suppliers are and where to outsource which part of your projects. If I had to design some complex piece of engineering, I’d probably go to a German company. If I wanted to go to mass production, I’d probably rather go to China rather than Germany.

This difference in countries and educational system is something I noticed when I was at the university myself. I studied in France but did my last semester in a German university. What I noticed was that the programming exercises I got at the German university were so easy for me that I could finish most of them in less than an hour and could see most people spending the whole night trying to figure it out while I was surfing the web. On the other hand, I never had any kind of exposure to the design or architecture of complex software systems while at a French university and it was kind of a major focus point at the German university.

So the question is not only whether people are good or bad but it’s the matter of knowing what people are good at and not hiring them to work on things they are not so good at. And never forget that something being expensive doesn’t mean it’s good but on the other side something being very cheap most probably means it’s not so good (although there are always exceptions confirming the rule).

So who’s responsible for this not so good reputation of Indian programmers in the US or in Europe ? Partly Indian companies hiring people who don’t really know to code well and selling them as software experts. Partly American or European managers mostly interested in lowering IT budgets and not caring enough about quality. Imagine you buy a pair of Adidas shoes (which in this case might be spelled Addidas) for $10 while on vacation in Turkey and you have to trash them after 2 months of wearing them. Who’s at fault ? The guy who sold them promising it’s great original quality ? Or the guy blind enough to think he could get great original quality for that price ?

So outsourcing to India to lower IT costs can make sense. But you need to understand that even in India it’s very difficult (if not impossible) to get great programmers for less than $20 an hour. So first focus on finding a great Indian programmer. He will definitely be cheaper than an equally qualified programmer in Europe or in the US but be prepared to pay a decent amount of money for decent quality.

Also note that it’s very easy to find absolutely bad programmers both in the US and in Europe which will still cost you quite some money…

8 thoughts on “About indian programmers

  1. There are multiple issues behind why people get not so good software work done in India.

    Most of the work outsourced to India is pathetic in its standard. All the nice and interesting work will be done at the main company and the boring routine work will be pushed to India. How can you then expect them to make full dedication to the work, even if they are good at it ?

    Engineering is a disease in india. Huge number of students are pushed to engineering just to get a degree. Most of them arent interested in any subjects at all. A good percentage of them will end up in IT industry.

    Is there a solution ? Well, the best thing to do is to assign them a small work and judge their results before giving them any serious work.

    1. Thanks for the comment.

      I do not think that getting boring stuff to do is an excuse for poor quality. But of course not being involved in the whole process (especially if you get a specification thrown over the fence without getting proper background explanation) is for sure hurting the quality of the results.

      Any you are right on your second point, the fact that many people just end up in the IT industry because they have better chances to get a job in this industry but actually have no interest (an no gift for) IT, leads to very poor quality.

      Of course giving someone a try on a smaller project is always the best solution. It works fine with freelancers. But if you are a larger company and want to outsource development of a product, you cannot always just give it a try. In this case you need to have people making sure that you recruit the right people. And often it means not focusing first on the cost per hour but focusing first on getting good programmers (which do exist in India as in other countries and like in all countries tend to be more expensive than individuals with no motivation, no experience and no proficiency…).

  2. The bad quality code is because of education system in India.On other side,Students are powerful in mathematics and logic here. But the education system (and to put more briefly, the examination system) here sucks each and every brilliant student. 30% students surpass the educational Interception and really bring the best they have.

    1. Yes, I guess the educational system in India tends to focus too much on learning and not enough on deep understanding of the topic. On the other hand, I’ve also seen cases in Europe of people showing great exam scores and very poor understanding of IT and programming. So I guess whenever you hire someone, it’s probably best to completely ignore the scores on paper and only rely on the understanding people show during interviews (whether in India or other parts of the world).

  3. You really have to live in India to understand why Indian programming is bad. Gave you ever used an Indian governmental website? Have you ever tried to get paperwork done in India? To say exactly what is wrong with most Indian programmers is too politically incorrect and will evoke denial by Indians who will cry racism and stereotyping. There is a lot of narcissism in India, so no one will accept any flaws and if they do they’ll attempt to justify it by blaming somebody else.

    1. Hard truth:
      I will not agree to your point that no one will accept any flaws or something similar. I’ve been working under Henri from quite a few years and have learnt many things along with correcting any of the mistakes that I used to commit.
      Regarding the poor quality of programming:
      In one of my previous company where we had developed a lab information system which we developed from scratch, it was indeed one of the best designed and stable products.
      What happens in most of the services company today:
      Its very unfortunate that there are hardly any products developed from scratch in India –> which means, we get over the code from some one who has scribbled from many years. You either dont get enough time to understand the whole thing and start providing fixes that will ensure “it works”.

    2. Whenever I fly to India, I have to use a Government website to register. And yes, this website is awful. But I assume, it’s not directly related to the skills of developers in the country but maybe more to the expectations the customer (both the one paying for the website and the ones using Indian governmental websites) have. In countries where it’s usual to do most of the paperwork online, people are more used to it and expect better websites. Maybe India is just not there yet. Whether the government expect something much better and just got a poor quality product, I cannot tell but I frankly do not think it’s what’s happening there.

      Regarding criticism, in each country you have a different way to handle and cope with it. In Germany, it’s not a problem to point a long list of problems, in the US people tend to overuse the term “great” and in India, you have to make sure that you do not only point out the problems but also have some positive feedback. But it doesn’t mean that showing potential for improvement or problems is not allowed. I don’t think it’s a matter of narcissism but rather that in India you need to have reached a certain level of trust for people to understand that it is constructive criticism. But I’ve seen many examples where showing Indian people that things would be much better if done in a different way and this feedback led to a dramatic increase in quality. A certain cultural sensitivity is required no matter with which country you are working. In some country you might need to build up more trust before being able to communicate in a better way than in others, but it doesn’t mean it’s impossible and people in some countries are unable to improve.

Leave a Reply

Your email address will not be published. Required fields are marked *