Is it a cultural problem?

Like many companies outsource to India, my company come to realize outsourcing is not as effective as the business magazine claims. No one can escape from the fundamental law of economics, what you pay is what you get. Yes, going to India seems cost saving on paper, but it really sacrifice the quality of work, which often don’t show up in any project management matrix until it’s too late. This week, I doing code review for my Indian team. Their code is so bad that it is driving me nuts.

In the project status meeting, one of them claim his code is done, all the tasks are completed. However, when I review the code, it’s all garbage. The code is not doing anything, not testing what the program suppose to test. It is pretty much a glorify print statement that prints “PASS” at the end. I have tell him rewrite the code from scratch. Maybe we forgot to tell him on top of meeting the schedule, the program also has to work.

I review other code pieces from other Indians programmers. Well, the code works, but it is the ugliest code I have seen in a long time. Instead of writing a for-loop, one guy copy and paste the code 4 times and change the index in each code segment! Instead of using a single if-else statement, another guy split the code into a dozen if-else statements having exactly the same if condition. Maybe they were paid by the number of lines of code they write, so they purposely inflate to make the program look larger.

To be fair, a few of them are quite decent, but I found the majority are just simply annoying. I wonder is it a cultural problem that Indians are sloppy in general or I am just (un)lucky enough to work with mostly incompetent people?

7 comments to Is it a cultural problem?

  • Michael Cheung

    Welcome to the party! They seem to have a totally different set of common senses than we do. If you do not specify exactly what you want, you will get something completely out of your imagination. For example, you ask them to generate a table listing the properties of a set of equipment. Yes, you’ll get a table. But the equipment identifier isn’t in the first column, but buried somewhere in the middle. They may list the columns in alphabetical order. You get a completely useless table. If you ask them why, they’ll say there’s no requirement to list the equipment identifier first. It’ll be treated as an enhancement.

  • uncleray



  • Michael Cheung

    與其俾佢哋激到嘔血, 倒不如一笑至之. 好多時我哋把它當作笑話, 大家笑一笑, 自娛一番. 反正大家都知道係什麼一回事. 不過還得小心處理, 佢哋好多鄉里喺度.

    其實啲本事o既印度人都幾難受. 俾自己友攬到噴血更激心.

  • Yeah, we can do nothing except have a good laugh. The problem of working with the Indians is if you don’t think everything over and specify it clearly, they can screw up in a very imaginative way. If you have the time to write a proper spec., you can just simply write the code yourself.

  • If you have the time to write a proper spec., you can just simply write the code yourself.


    And if you are using internal programmers, at least you can break down the communication / review of work in numerous regular development cycles.

  • The problem is the management did not schedule enough time for us to review their code properly. You can either spend time do your own work or review the Indian code. When you are busy with your own code, the first time you see the Indian code is the time you try to use it, and it’s already too late.

  • home job

    Money often costs too much.

Leave a Reply