101
votes

The other half of this question: How do Programmers in the East see programmers in the West?


The eastern part of the world (India/China/Philippines ) mainly provide outsourcing services to the western world (USA and Europe).

Do you have the experience of working with offshore teams? If yes, how was it?

Do you hold any generalized ideas or opinions about the programmers from the East (e.g. Are they cooperative, do they deliver on time or do they do quality work?). What are these based on?

13
  • 3
    True . But Major part of the IT economy are built on services. Feb 23, 2011 at 8:51
  • 8
    As a contrast I've also posted: programmers.stackexchange.com/questions/50884/… - "How do programmers in the east see programmers in the west?" Feb 23, 2011 at 11:33
  • 11
    Re. vote to close - I'm astonished. I think this is a great subjective question though I would stress that people need to support their answers with experience and facts over pure opinion. Feb 23, 2011 at 11:36
  • 11
    Wow, when I first read this I thought it meant East Coast vs. West Coast in the US.
    – Jess
    Feb 23, 2011 at 16:01
  • 3
    @Andrew: LoL. There's a pretty big culture gap right there! let alone Midwest. Feb 24, 2011 at 21:45

45 Answers 45

1
2
1
vote

My experience: I'm born and educated near NYC, and have been working with engineers/developers in China and India for over ten years, as well as with teams in Europe. And many of my co-workers are immigrants from China and India.

Generally speaking, I observe that the employees in China and India serve two primary purposes: as low cost centers and as access to the local market. In particular, China is one of our largest markets and where our largest customers outside of USA are; there is a need for local work to deal with customers for customize and test.

My employers also have R&D in India and China, but that's a bit beyond the scope of this discussion.

Generally speaking, "east" is younger and have much higher rates of employee turnover. They're also getting higher pay raises from a much lower base, and I've seen their improving standard of living over the years. Many of them now own motor vehicles (a scooter or a car) and have broadband internet access.

Part of our cultural sensitivity training was how different cultures deal with conflict, hierarchy and authority, and there is a grain of truth in that. Especially in the approaches to authority...

2
  • "My employers also have R&D in India and China, but that's a bit beyond the scope of this discussion." If the R&D also involved something related to programming it wouldnt be beyond scope. There's a lot of software related R&D happening in India. Google, IBM, Microsoft have all had one of their Research centers set up in India.
    – Mamta D
    Feb 24, 2011 at 8:46
  • It's telecom R&D, so while they do lots of programming, the research isn't in primarily in computing or programming.
    – user18096
    Feb 24, 2011 at 17:30
1
vote

Outsourcing just has one purpose: low cost.

Outsourcing is very popular in this industry, even in a large international company, they also use outsourcing inside. West department may use outsourcing to its east department.

I think the major advantages of west are in design and business area. In most cases, west department designs in architect level even provides some base code or libraries. And west department knows business in depth. After evaluation, the base design and business analysis will be transferred to east department.

In my personal experience, west departments are more mature in industry, while east department are progressing quicker.

With development in east, outsource is moving to cost lower countries. Meanwhile, outsourcing is low profit relatively, east companies will build their abilities in own design and business by learning from west during outsourcing stage.

1
vote

I have worked in a large multinational company that had set up a dedicated Indian office. They additionally used Indian consultants from a separate company. The Indian office had better paid staff who had relocated back from the US. I always found the work from the Indian office to be of a very high quality. The lower paid consultants were mostly used for testing and any development work they did was generally poor.

Although I agree with many of the cultural observations in the other posts I think economics is a factor in determining quality. There are very few good engineers globally. A small fraction of the available labor pool. I define a good engineer as someone who is inquisitive, knowledgeable and has had a good education to build on these skills. As the the demand outstrips supply they are recruited globally. There is a small number of incredible engineers in India. Most of these are graduates from the top tier of Indian universities (such as IIT). Likewise there are a very small number of talented native western engineers.

Inversely there are a very high number poor and average engineers. I remember in the dot com boom that companies were hiring western history graduates, who could barely spit out some HTML, because they were so desperate for staff. Now a poor engineer in the west would not get a job. You can now hire the equivalent in India for a fraction of the price. Therefore you get a concentration of very poor staff at Indian consultancies.

Occasionally I would encounter a few gems in the consultancies. They were naturally bright and would ask lots of questions. Usually they were making up for bad training. What is sad is that they would not get any support from their employers. A lot of consultancy policies are designed to limit the skills that a consultant can pick up, such enforced six month rotation period between contracts.

1
  • I couldn't agree more that economics is the key here. Back before everyone was outsourcing to India you could get amazing talent, often at highly discounted rates. However, as demand for discounted programming talent has increased, it is more often than not supplied with substandard talent. Ironically, great Indian developers are more likely to stay working in India now than in the past, but the demand is so strong you have to filter out a lot of junk to find them. Mar 1, 2011 at 17:14
1
vote

I worked for a company like London that had a contract with an Indian recruitment scheme, they were paid well, but, about 2/3 of what most of the consultants were earning, from what I was told they had to employ a certain amount and the CFO seen it as valuable for money. They all had master degrees etc.. more than most contractors. The result? Utter mess! ASCII art competition in headers of c# files, disregard for naming conventions, massive lumps of nested ifs, it was horrid, no idea about OOP, dont even start on SOLID or TDD. Worse they kept churning this crap out.

Me and some others that took some pride in our work, would sit there cursing it in frustration, they had been approached by some others but didnt take it well, in the end management got itchy feet and took us aside incase it was seen as racism (go figure).

Prior to that I had a gig at a price comparison website, they outsourced to Vashai in Mumbai, I went to teach (good two weeks). Again nice people, but all bar one were worth the 1/3 of graduate salary they were supposedly earning, again all with Masters degree. They just couldn't get it.

Just my experience.

1
vote

There are millions of programmers in India, so this answer has to be a generalization. I think the answer has changed dramatically over time. You go back a decade ago (particularly before the .com bust), and the experience was that you'd be hard pressed to find better junior and mid-level developers than by outsourcing to India. They were intelligent, skilled, generally had strong communication skills, but most importantly they were very eager to show what they could do. Senior talent was also in India, but just like in the West it was hard to get to it by outsourcing unless you contracted directly with the developer.

Now though, I think the pendulum has swung pretty far over to the other side. The demand for skilled programmers in India is so huge that the talent pool has been spread ridiculously thin. I wouldn't touch an Indian outsourcing company unless I had a strong relationship with them and knew I could count on getting quality. If you want good programmers in India, you don't outsource. You need to set up shop in India and start screening and hiring people. You can still find great talent (there is actually more of it that stays in India than in days of yore), but to me the notion that you can get that talent at a significant discount is a nostalgic fantasy. It turns out good programmers are hard to find everywhere and they therefore can charge a premium for their services... everywhere. Now I look at India as a place to find more great talent, rather than as a place to get any kind of a bargain.

1
  • "good programmers are hard to find everywhere" - I would like to add that I feel they are not hard to find but actually hard to identify. You might find a couple of really good programmers when you put up a vacancy but it is difficult to identify them with questions like these: rate yourself interview question
    – Mugen
    Aug 18, 2011 at 10:21
1
vote

Firstly western programmer tent to only every deal with India programmers that have written code as part of an “out sourcing” agreement. I expect the best India programmers are writing code for India companies, or are directly employed by large western companies like Microsoft.

I think it would be far to say, whenever I have had to “fix” such code. (From some reason the weston programmers are expected to sort out the mess a few week before the project is meant to ship. Maybe if the code is not a mess, a weston programmer will never have to look at it.)

  • The India programmers did not “get” the vision of what they were meant to be doing.
  • They saw things like “Unit Testing” as “tick box” item and therefore just wrote enough test methods with no thought about what they were testing.
  • The India programmers claimed to understand what was needed and to be able to do it, regardless of the truth.
  • The India programmers never questioned way they were asked to implement a given requirement and therefore never questioned specs that a Western programmer would have questioned and got fixed before writing “correct code to do the wrong thing”.
  • They worked hard and long hours, but did not produce a solution that work, just something that maybe kept to their reading of the spec.
  • It is not allowed in the UK to say you can’t work with an India when you are unable to understand what is said in phone meetings etc., therefore you can’t tell anyone that the project is going wrong. (The time zone problems in themselves are enough to get most UK programmer to recent having to work on a project with India programmers)
  • There is also a lot of resentment when Western programmers have to spend time “baby sitting” India programmers rather than writing code themselves, unlike trainee programmers in the UK, you know that the next month you will just have to repeat it again with a different set of India programmers.

More I think about this, I think the issues are as much about a software companies thinking they can save money by outsourcing coding to programmers that have no understanding of (or real interest in) the problem domain. (Understanding how the West works is part of the problem domain).

(The false belief that a “sales” person can bypass the in house development department, write a spec themselves and then get some cheap India programmers to write the code, is still very common.)

I have had better experience with Eastern Europeans programmer, as they see to understand the West better, are in a better time zone. It is also possible for someone to jump on an aircraft with a reasonable length flight (and little jet lag) for regulation face to face meetings.

0
votes

My anecdote:

A few years ago I worked on a project with a team from India. I found them extremely pleasant to work with. They really knew their stuff. Our only friction point was response time to last-minute changes from the client; although to be fair, management ego doesn't always translate well across language and distance.

0
votes

In one of my previous jobs I worked on a project which had development split between Ireland, the USA and India. Some awkward aspects of the project couldn't be helped e.g. the time difference but the fact that often the Indians had pretty poor written English meant that things like defect reports could take a lot of time to decipher. Atfter a while I found it easier to pick up the phone and call the person directly where possible. It's a lot easier to clarify what someone means if you can talk to them rather than sending e-mail after e-mail.

While outsourcing is fundamentally about reducing costs, there are talented developers all over the world. The difficult part is being able to distinguish them from the not so talented!

0
votes

Well, being from the US and having experience working with a few firms in India, I would say it is difficult but getting better. I feel that they are technically able to do what you ask but you really have to outline everything in detail or it will be a very long and messy project. This is not because Indians do not understand what you want, but that they think differently, at least from a usability aspect on your project.

I will just give a quick for example. We had a project were an Indian firm was building our user interface and some of the database connections. When the project was almost finished we took a look at it, and at first look it was perfect. Then when we started to run through the program we realized something was wrong. When we went to add something, and you were on the page, for some reason you would have to hit the Add button even though you were already there, and then type in the information and then the submit button.

This seemed counter-intuitive to us as we figured we were already on the page and didn't need to press the Add button and would fill out the information and then select the submit button and nothing would happen. They designed what we asked but it functionally didn't make any sense to us at all here in the west so we ended up re-designing the whole back end.

I find that working with other countries, though lower in cost, seems to take longer and may actually cost more in the long run if you are dealing with time sensitivity against your competitors. On that project our competitors ended up a few years ahead of us due to the difficulties we had. Now I know this was all due to communication breakdowns and understanding and I feel you have to have someone that is good at explaining the process and can speak technically with both groups on the same level to make things run smoother.

0
votes

I'm a ASP.NET/C# programmer from China. I totally agree with Péter Török. We've just taken over a project which is developed by Philipen for several years. The code is the most disgusting I've ever seen. Every single class at least has 3000 lines. They are such code wasters 'cause the code are really prolixity. they've no idea what reuse is. And they don't do unit test. The whole system is on the edge of crash.

Currently we're trying to fix the bug for the huge project. The work is really like a nightmare.

0
votes

The worst mistake I made is outsourcing to India. It was only for basic HTML, and the programmers were more than capable of programming PHP and SQL (at least they thought so anyway). We outsourced them to create a few forms for us, and what they came out with is hundreds of tables inside each other. Not only that, but the lead project manager took a three week holiday without even communicating with us.

From what I've seen of the East, I don't believe that the East deserves the attention of the West. Again, I have nothing against Indian people, they are amazing, but the Indians that I have experienced have a horrible work ethic.

My advice: You'd be crazy to outsource to India.

0
votes

I would say that it is the same as with programmers from anywhere, sometimes a programmer is good, sometimes he is bad.

I have worked on multiple teams with programmers from the "Eastern" world (including Europe...which IS East of me. Some of them were bad, some were good.
I once worked with an Indian man who was the fastest, most skillful programmer I have ever worked with. He very rarely had a bug and his code was always neat and clean and done before it was expected including testing.
On the other hand, I worked with an Indian man who spent 9 months at his desk on his cell phone laughing and talking. The managers weren't sure what to do with him though because his work always got done. It wasn't always the best work but it got done. 9 months later they discovered that he had spent his entire employment there sending the work to his friends and family in India without telling anyone. He had turned himself into the manager of an outsourced development team by his own choice.

Humans are humans. Some of them suck, some of them don't.

1
  • Humans are humans. Some of them suck, some of them don't.. The problem is the percentage in each country, and each field. Nov 2, 2011 at 9:32
0
votes

I'm pretty sure the percentage of good developpers is the same in eastern part of the world than everywhere else. This implies that there are a few good developpers in eastern part of the world, like everywhere else.

The problem comes from the fact that "selling software" is the easiest way to make money, so a lot of people pretend they know how to develop because they have written 3 lines of Php code, and try to sell sofware (= outsourcing).

So, it's juste simple maths: there are a lot of so-called software companies, but there are a few real good developpers in eastern part of the world, like everywhere else. To understand, let use numbers, even though they're not real:

  • 100 software companies in western part of the world. 50 of them are good.
  • 10000 software companies in eastern part of the world. 50 of them are good.

So... the chances you get a bad software company are much higher in eastern part of the world than everywhere else. But the important fact is that there are as many good developpers in western part than in eastern part.

To add to the top of that, there's a mentality problem which makes things worse.

And to conclude to what's happening in France: there have been thousands of project that have been outsourced, with catastrophic results, and a lot of them were big projects (big projects outsourcing was like great savings). So now, real geeks and man like me, who are real developpers (real developper = not attracted by money first) have a lot of work in France, because I have do dig in everything that has been done, give "expert conclusion" and the company acts upon. I'm very well paid, so all in one, it's not such a bad thing ;)

Please don't hesitate to correct my post, to make it proper English, because my English is perfectible.

0
votes

Personally, I think everyone is different. I've seen some as good, some as bad.

I think there is a negative perception, because most westerners are dealing with consultants and consultants tend to do the least possible and look for ways to blame others for what they did wrong.

Another thing to keep in mind, many American programmers are immigrants from India. I don't have the statistics, but I would guess about half of them.

-3
votes

Note: This is a highly subjective view and hast most likely nothing to do with reality

US Programmers - nothing great, average guys, many hipster fags

European Programmers - are there any?

Eastern Europeans + Russians - mostly geniuses who would write evil viruses/bots for a glass of vodka

Indians - mostly javabots in bangalore who do it only for the money

Chinese - the next javabots

1
2

Not the answer you're looking for? Browse other questions tagged or ask your own question.