101

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?

Vinoth Kumar C M
  • 15,455
  • 23
  • 57
  • 86
  • 3
    True . But Major part of the IT economy are built on services. – Vinoth Kumar C M Feb 23 '11 at 08:51
  • 8
    As a contrast I've also posted: http://programmers.stackexchange.com/questions/50884/how-do-programmers-in-the-east-see-programmers-in-the-west - "How do programmers in the east see programmers in the west?" – Jon Hopkins Feb 23 '11 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. – Jon Hopkins Feb 23 '11 at 11:36
  • 2
    It is a subjective question, but is it constructive? – LennyProgrammers Feb 23 '11 at 12:37
  • @Lenny222: This question, and the accompanying one created by @Jon, have great potential of being constructive if they allow us to better understand the cultural mindset of 'Eastern' vs. 'Western' programmers. There will automatically be built-in cultural differences based on geography and history; the question is 'how many of the built-in differences remain' and 'what new differences are created' by Computing Science and Engineering education and the various technology gaps between the two regions (historical and present). – oosterwal Feb 23 '11 at 13:14
  • 2
    I think the question is coming along in a very constructive manner. – Pekka Feb 23 '11 at 15:56
  • 11
    Wow, when I first read this I thought it meant East Coast vs. West Coast in the US. – Jess Feb 23 '11 at 16:01
  • 3
    @Andrew: LoL. There's a pretty big culture gap right there! let alone Midwest. – Mike Dunlavey Feb 24 '11 at 21:45
  • +1 This is one of the more interesting questions I have seen here lately. – Bjarke Freund-Hansen Mar 01 '11 at 15:58
  • 2
    I have never worked with off shore teams or code. The only opinion I hold is they are rather lucky because they can get authentic Indian/Philipino/Chinese/etc food. – dietbuddha Apr 09 '11 at 09:35
  • 2
    Anyone else find it strange that the "correct" answer to "how does the West see the East" is from someone in the East? – James P. Wright Jun 14 '11 at 13:53
  • 1
    Usually over Skype. Can't see 'em with a telescope due to the curvature of the Earth. – Brian Knoblauch Nov 02 '11 at 12:03
  • Interesting views. – Vinoth Kumar C M Dec 09 '11 at 16:00

45 Answers45

118

Disclaimer: I live in Central Eastern Europe, make your own decision on whether I count as Eastern or Western :-) As such, I worked on projects outsourced to our country from Western Europe, and I experienced doubts from the more Western coworkers and management concerning our abilities, similar to what Indians must experience in such situations.

OTOH I have been working with several Indian and some Russian developers on two major projects. The first also involved a component developed entirely by an Indian subcontractor, which was easily the most horrific piece code I have ever had access to (I can't say "the most horrific code I ever read", because upon seeing that the largest single source file measured more than 600 Kbytes in size (or AFAIR about 30K lines), I quickly closed it and could only pray that I may never ever need to touch it. My pray was listened to).

The latter (which I am currently working on) has been subcontracted to 3 different companies, some of them applied several Indian programmers. We have been cleaning up the result of that in the past 1,5 years, and there is yet enough work left for the foreseeable future.

In my personal life, I lived in India for over 3 months at a previous era of my life, so I probably know more about the country and its inhabitants than an average Westerner. Personally I like Indians a lot.

My personal experience has been that the same noticeable cultural differences which exist between Western and Indian people in general, are observable between programmers as well. Indians are usually very diligent in executing whatever concrete task is thrown on them, but not necessarily see or even feel the need to understand the bigger picture. Which can easily result in low quality software.

Another potential issue is the culturally ingrained resistance of Indians to say no to any request, as I believe it is considered rude by them. If you go to an Indian grocery shop and ask for blankets / jewelry / shark fins / whatever, the owner will say "yes sir, in a moment", then sends out his boy to some other shop in the neighbourhood to fetch the product and proudly presents it to you. Which is good business practice indeed. However, if the same is applied to subcontracting a SW development project with a fixed impossible schedule, the results may be disastrous. This is just speculation from my part though, I have no concrete evidence on whether or not this is really a factor in outsourcing SW development to India.

One prime example of futile diligence in our current project was the implementation of a performance monitoring scheme. The idea was to pass around objects which gather performance statistics. However, the solution turned out to be slowing down the app so much that it was never really used. Nevertheless, its remnants in the code were left there for us to clean up. In practice, this meant passing an extra object parameter to all (about 6000) methods in the code. The guy who did it even added a comment to the Javadoc of each method, noting that the extra parameter was added for performance measurements! Now, I can only marvel at the diligence of that guy, doing his job through all 6000 methods and faithfully inserting those Javadoc comments everywhere. OTOH, a) as noted earlier, the scheme was never used in practice, and I am sure its performance hogging effects could have been detected by an early prototype, making the whole job unnecessary, b) all the Javadoc comments contained the same spelling error, c) such comments do not belong to Javadoc anyway.

I don't mean that this all was the poor Indian developers' fault (except the misuse of the Javadoc). IMO it is much more the fault of managers mindlessly contracting out projects without monitoring the results, conducting strict acceptance tests and ensuring the adequate quality of code and documentation. Not to mention hour based payment schemes which surely don't make any subcontractor interested in saving development time.

However, I think I would be hard pressed to find developers in the West to undertake similar tasks with the same level of consistency and without complaints.

We also have subcontracted testing tasks in this current project to a group of Indian testers. Personally we are only in contact with one of them, so no idea how many they are in total. However, this guy is a gem of a tester, a valuable asset on any project. Apart from being diligent and thorough, he asks a lot of questions to understand the big picture, often tests even more than what was expected, and reports issues found precisely and descriptively.

Péter Török
  • 46,427
  • 16
  • 160
  • 185
  • 1
    Nice Observation – Vinoth Kumar C M Feb 23 '11 at 09:21
  • 42
    Well, I can only thank you for not generalizing. Generalization *never* works. – sukhbir Feb 23 '11 at 10:11
  • 41
    lol @sukhbir's generalisation – Matt Ellen Feb 23 '11 at 11:35
  • 1
    Eastern Central Europe sounds much better. :) – biziclop Feb 23 '11 at 12:40
  • 19
    `Another potential issue is the culturally ingrained resistance of Indians to say no to any request, as I believe it is considered rude by them.` This propensity for 'Easterners' to always say 'yes' has been noted in other articles on cultural differences between East and West. One article I read many years ago explained that when some far-Easterners say 'yes' in response to a question their primary intention is to imply that they understand the question, not that they necessarily agree to be bound by it. That article, from the '90s, targeted differences between US and Japanese business. – oosterwal Feb 23 '11 at 13:32
  • @Péter: Very good post. I have to say I'm continually amazed at the nonsense people everywhere seem to do in the name of "performance" (of software), when it is really such a [simple concept](http://stackoverflow.com/questions/4387895/if-profiler-is-not-the-answer-what-other-choices-do-we-have/4390868#4390868). – Mike Dunlavey Feb 23 '11 at 14:00
  • 2
    What does OTOH mean? – David Murdoch Feb 23 '11 at 15:06
  • 2
    @David: On The Other Hand – Mike Dunlavey Feb 23 '11 at 15:06
  • Its really sad, but true. The reasons for the lack of quality IMHO can be read here. http://programmers.stackexchange.com/questions/50884/how-do-programmers-in-the-east-see-programmers-in-the-west/50939#50939 – Danish Feb 23 '11 at 15:09
  • 7
    I thought europe was a country.. – Dave O. Feb 23 '11 at 16:14
  • Thanks for your post. You brought great insight about why Indians act like that. I used to think they were just lazy but never really considered why exactly they had such jobs if they suck so bad in Software Development. Now I understand a little bit better. – Alex Feb 23 '11 at 17:42
  • "If you go to an Indian grocery shop and ask for blankets / jewelry / shark fins / whatever, the owner will say "yes sir, in a moment", then sends out his boy to some other shop in the neighbourhood to fetch the product and proudly presents it to you." - I lol'd. – Tejaswi Yerukalapudi Feb 24 '11 at 04:45
  • I guess Hungary is just eastern Europe. It's way off centre to be considered central. I know countries don't want to be part of eastern block (I'm also coming from one) hence they usually claim they are *central* Europe. I'm from Slovenia and I still consider us eastern (even though we are your western neighbour). It may not be geographic location rather than historic/political/etc that makes us both eastern Europe. – Robert Koritnik Feb 24 '11 at 14:22
  • Mentally these countries are much closer to Russia than to Germany, so I'd count them as Eastern Europe. Disclaimer: I'm Polish. – quant_dev Apr 09 '11 at 10:18
  • 1
    @Peter This post is reinvigorating to a frustrated mind working in the East. Thanks. – Mugen Aug 18 '11 at 09:44
81

Hmm Interesting views.

I'd just like to throw in mine.

I live in India (I'm Indian) and I've been programming since I was 11/12. All I have so far is an high school education and interestingly I've done two things so far, I taught at an Indian Computer Institute and right now I develop freelance (and got myself a project with a VERY high profile client)

So two things that I think are true from where I stand:

Sure people are people, but the Indian mentality on life and education is very different here, for the months I taught, I saw parents push their kids into IT just because they think it'll get them money or something, also, I taught students doing/finished Bsc and Engineering degrees and 98 out of 100 cannot write a few lines of code in C. (Forget quality code) .

The State Computer Science course here, they have Turbo C as part of the curriculum, C++ to most people is C but only using cout to print.

As for development, with these kind of graduates, you'll expect to find tons of "engineers" out there, coding horrendous things. I've met small size "Companies" that use no source control, they won't even have an idea of what unit tests are.

Its sad that I have so much Ill to say and it pains me. BUT Everyone here is not like this. There are so many of us, that, that maybe the impression people get. lol

Somehow even being successful here means moving somewhere else, because there is no real scope to grow and really hone your skills. There are of course the smart-heads from IIT and other top colleges here that do know their stuff (eventually they move out too)

But the bottom line is that IT education here is pretty sad in my view.

gideon
  • 657
  • 1
  • 9
  • 16
  • 29
    Very interesting, thanks for the viewpoint. I think the "parents pushing their kids into, and people studying, stuff they're just not good at" phenomenon is pretty much a world-wide one - its bad results just seem at its most visible in India at the moment because it's so insanely attractive there to do offshore work, and other metrics like population. But it would be a *huge* mistake to think India doesn't have brilliant people, and competent developers – Pekka Feb 23 '11 at 12:48
  • 4
    @Pekka if I had a nickel for everytime someone told me to be a doctor or a lawyer I wouldn't need to be in IT. – jonescb Feb 23 '11 at 13:48
  • @pekka yea population is the killer bit, ironically, my own parents/relatives think I'm not good enough with a degree, infact, I am not, because with the number of people the stakes are higher, also, the way most jobs pay (seriously low) people will do whatever they need to get a better paying one, or move. Plus you have no idea how drone-like it is to have a million people striving like robots for the same thing you want. – gideon Feb 23 '11 at 14:08
  • @pekka @jonescb Ironically I myself will not get into a degree course in CS, (I might have to settle for a math degree) because there are so many who will apply with far better scores and my skill will be accounted for nothing! Its more than just what people/parents say.. you cannot survive in india without a degree, what mac-donalds pays you monthly will probably cover 20-50% of your rent. So then we have a few million doing _some_ degree or another and the whole system turns into a mess. – gideon Feb 23 '11 at 14:13
  • 1
    Great cultural insight. I went to school with a number of Americans of Indian descent and I remember three separate occasions of comforting some that were distraught because they just didn't understand/like programming but had to get a high-paying job so they could go home and visit family on a regular basis. That pressure pushes people in directions they may not have the aptitude for. Meanwhile, my extended family is a mere 1500 miles away and it's a good year if I make it home for a visit. – Steve Jackson Feb 23 '11 at 16:03
  • 1
    @giddy you look like somebody who might profit from Stack Overflow in the long term - where people are looked at for actual competence and passion. Be sure to have a CV filed at careers.SO, one never knows – Pekka Feb 23 '11 at 18:48
  • 11
    +1 for mentioning the turboC problem. I mean if they dont want to spend much money, use eclipse or something. Using that outdated piece of software just turns students off programming and computers. – apoorv020 Feb 24 '11 at 07:12
  • 3
    @apoorv true. when I used to teach earlier (At "renowned" Indian institute I won't mention), they used turbo C there too, I used to use netbeans to teach (which was already installed) but they forced me to go back to TC! Eventually 4-5 students went up to him and told him they liked it for the first time, because they actually could write a program that would work! – gideon Feb 24 '11 at 09:33
  • @giddy: You make your points very well. This borders on economics, on which none of the experts agree, let alone the ignorencia, but it's always been obvious to me that if one can't afford something ("what mac-donalds pays you monthly will probably cover 20-50% of your rent") the reason is precisely because *someone else can*. – Mike Dunlavey Feb 24 '11 at 16:53
  • @Mike glad you saw it, yes, this question (or atleast my answer) maybe be applied in general terms to most industries and India is the way it is because of poverty here and the population, which just makes the standard of like plain terrible, which then leads to things like @Scant Roger talks about, I made my point because I'm scared of *ignorant hatred*. – gideon Feb 24 '11 at 17:08
  • @giddy, totally agree. :( i wish there people here would be programmers because they WANT to be one, not because their parents told them to. :( – st0le Feb 28 '11 at 05:29
  • @giddy: No college degree and a high profile client. I thought that was the exclusive privilege of people living in Berkeley. Awesome job. Good luck to you. I come from India and I know what you have done is hardly 'ordinary' – Kaushik Mar 02 '11 at 06:21
  • @victor thanks but places like SO makes me see I'm shooting fast balls while there are others shooting bullets. – gideon Mar 02 '11 at 06:40
  • @giddy I have been given a number of invites to SO careers (see [here](http://blog.stackoverflow.com/2011/02/careers-2-0-launches/) for how it works). Do you want one? – Pekka Mar 02 '11 at 16:55
  • @pekka yes I do, I do plan to apply, but, I'm just waiting for an acknowledgement/appreciation letter for the work I've done (because not many people believe me) Hopefully that letter will come from the Chief General Manager of the largest bank in India =P (which happens to be my high profile client) – gideon Mar 02 '11 at 17:14
  • @giddy ah, okay, fair enough. If it doesn't work out, I'm happy to send you an invite - just tell me an E-Mail address to send it to. – Pekka Mar 02 '11 at 17:16
  • @pekka if I accept the invite I can put up my resume anytime? Not necessarily immediately? – gideon Mar 02 '11 at 17:21
  • @giddy yup, you can mark it hidden until you're ready. (At least that's my understanding of how it works) **Edit**: Got it, you can delete – Pekka Mar 02 '11 at 17:22
  • Interesting. Sounds like you guys suffer from the same dreary traditional educational approach that is common here in the US (if not a slightly dated version) where many people who graduate from programs are solid in CS theory but still can't write code. I always figured that the ridiculously low wage rate was just an adjustment on exchange and you guys actually made a good income at such low rates. Your answer was definitely eye-opening for me personally. Thank you. – Evan Plaice Mar 18 '11 at 15:40
  • @Evan we will only really make good money if we were to come over and work at your wage.. then come back here with all that money (or send it over here) which is why so many indians want to move out of the country. Your welcome :) – gideon Mar 18 '11 at 15:46
  • i agree with the IT education being sad. I studied computer engineering in India and I have just realised that most of my knowledge was self-taught or on-the-job. Can't remember even one memorable class where i learnt something new or had an 'aha' moment. – aldrin Aug 11 '11 at 17:48
  • 1. His question was about what programmers in the West perceive. And you are from East and voiced your opinion about what YOU see. 2. You didn't really answer his question. Instead you went on a rant about the sad state of things in the "IT Education". 3. And the irony of it all is that your answer got selected as the correct answer too even though it doesn't really answer the question. – Mugen Aug 18 '11 at 09:28
  • To 1&2 no I didn't answer his question, but precisely what you said, I voiced my opinion about what I see (no rants) because I read all the western views and bad experiences and noticed a little pattern. I only tried to talk about my perspective from here. 3. Yea was ironic for me too, I didn't intend for it to be an answer but some sorta opposing view! =) – gideon Aug 18 '11 at 10:10
  • In 2000 we jumped to C++ from GWBasic, in high school. We used the TurboC++ IDE or the Borland TurboC++ IDE. In 2003, in our undergraduate engineering course ('Computer Science and Engineering') we learnt C and were still using the TurboC++ editor. I was asked to leave the class once for opening the Windows Notepad to type in some code. Into our third year of engineering, in 2005, we were taught Computer Graphics. We did our Bresenhams again in TurboC++ using INT 13H. My cousin is studying for an engineering degree. She has been asked to use the Turbo C++ IDE. This is 2011. – sauparna Aug 23 '11 at 08:00
  • +1: First time I asked somebody about Cpp, I too got "C++ is C but only using cout to print." I'm Indian too! – KK. Nov 04 '11 at 10:58
  • Re: working for money, I guess it's not too much of a stretch as I thought to consider that lot of Indian families are "gold diggers". However, that does tend to have a benefit when they move in the US, as they tend to open more businesses compared to other immigrants. – Chris C Nov 04 '11 at 16:45
  • 1
    @karunesh Sheesh, that's even worse than the statement "C++ is just C with classes". – Chris C Nov 04 '11 at 16:45
  • @CCRicers When in our first OOP class, our prof at college told us that **C++ was *a lot* more than using cout,** I didn't know what to think! – KK. Nov 05 '11 at 14:32
  • @Pekka as far as Indian students being pressured to follow high paying careers, I think this graph speaks for itself (in particular Indian people that move to the US): http://www.nytimes.com/imagepages/2011/05/15/magazine/15-Leonhardt.html – Chris C Nov 06 '11 at 06:09
  • @sauparna: Why not use Linux and GCC? It runs on all kinds of computers from new to old ones. – Giorgio Jan 03 '12 at 11:43
30

I've dealt with three projects that were (mostly) "delegated" to off-shore (eastern hemisphere) resources. One of the three cases used a group (or maybe just one guy -- only dealt with one, but not sure how many others he had doing work) in eastern Russia. They/he did good work, and the project progressed quite nicely, other than needing work on the UI to fix some minor problems with wording from being worked on by people for whom English was a second (or maybe third) language.

The other two were a rather different story. Whether by chance or not, in both these cases the programmers were in India. In one case, essentially everything they did ended up having to be treated as nothing more than a prototype -- usable (to a degree) for testing possible designs, but everything they wrote had to be thrown away and replaced to get production level code. They seemed to exemplify what I think of as the "ISO 9000 mindset". They showed almost religious adherence to policies and procedures, but nearly complete lack of insight into the problem that was supposed to be solved. Their code may well be the clumsiest I've ever seen.

In the other case, the project was eventually just dropped. It had been the hare-brained scheme of a recently-promoted VP, and I'm pretty sure the idea from day one was to minimize expenditure, while still being able to tell him that his idea was in active development. While the code we got was entirely useless, it would be hard to blame the contractor much, since no effort was ever put into managing the project or even just getting them a usable spec. Their code started out poor and quality quickly degenerated when it became obvious nobody cared.

Jerry Coffin
  • 44,385
  • 5
  • 89
  • 162
  • 3
    The fact that "Nearshoring" has been invented as a word, indicates that the difference you found between Russia and India is not uncommon. See http://en.wikipedia.org/wiki/Nearshoring – Sjoerd Feb 23 '11 at 08:36
  • @Sjoerd: Yes, but in this case, the Russian contractor was at the first east edge of Russia, close to Japan. I'm pretty sure it was/is farther away than India (though the cultural difference may not track exactly with the simple distance). – Jerry Coffin Feb 23 '11 at 08:42
  • 8
    The 2nd story summarises my experience on a number of projects over the years with Indian dev teams. I won't generalise and say that ALL systems that come out of India are like that, but ALL that I have been involved in have. – ozz Feb 23 '11 at 09:13
  • 4
    @Jerry The east of Russia is far closer to the USA than the west of Russia! – Kirk Broadhurst Feb 23 '11 at 11:13
  • 3
    +1 for "They showed almost religious adherence to policies and procedures, but nearly complete lack of insight into the problem that was supposed to be solved" . This is very true . – Vinoth Kumar C M Feb 23 '11 at 13:07
  • @Kirk: Not everyone named 'Jerry' lives in the USA. – oosterwal Feb 23 '11 at 13:57
  • @Kirk Broadhurst: I have a hard time believing that. He was 11 time zones away. A team we worked with in St. Petersburg was, if memory serves, only 8 or 9 time zones away. – Jerry Coffin Feb 23 '11 at 15:41
  • As far as the "religious adherence to policies and procedures", see: http://en.wikipedia.org/wiki/Cargo_cult_programming – Poindexter Feb 23 '11 at 15:51
  • 1
    @oosterwal: check the profile " Colorado Springs, CO, USA ", @Jerry: it is closer to the USA (just the Pacific in the midst) but then the USA cover a few timezones as well – Matthieu M. Feb 23 '11 at 18:56
  • @oosterwal - No, but people named Jerry who live in the USA *do* live in the USA. @Jerry I suppose it depends on exactly where in the USA you're coming from and exactly where in Russia you're going to. But remember, Sarah Palin can see Russia from her house. It's pretty close. – Kirk Broadhurst Feb 23 '11 at 23:14
  • @james: all = how many? – Olivier Pons Nov 02 '11 at 09:18
  • @OlivierPons - 10 or so I think. – ozz Nov 04 '11 at 08:56
22

People are people. Some programmers are good programmers, some programmers are bad programmers. Some bad programmers can become good programmers with time, while time can never benefit some other bad programmers.

Location tends to not be a factor here. But maybe opportunity might.

I was asking what the words "Bad Syntax Error OK" meant in GW Basic when I was 8 years old. I grew up with computers. Not everyone has that advantage. Times are changing though, and the 8 year olds of today have more access to technology than the 8 year olds of yesterday.

But it's important to realize programming is more than just knowing how to use a computer. It runs much deeper than that. Here are some key characteristics that separate the good programmers (and the ones who just need time) from the real bad ones:

  • Good programmers are curious
  • Good programmers read online blogs and articles and try to learn more about their field
  • Good programmers answer questions on Stack Overflow
  • Good programmers with 1-2 years experience or more understand that their Computer Science education wasn't a waste of time
  • Good programmers can think outside the box
  • Good programmers are also good leaders
  • Good programmers are proactive and don't need to be told what to do

Most importantly, good programmers are also good communicators. The best programmers are the ones who can persuade others. They're the ones who can patiently debate a problem with another peer until a solution is found.

The biggest challenge is communication.

Whatever the challenge, don't ever stereotype yourself or others. You have just as much potential as anyone else and vice versa. Just remember that you can do anything that you really put your mind to!

jmort253
  • 9,317
  • 2
  • 35
  • 63
  • -1, since the actual GW-BASIC error is "Syntax error", not "Bad Syntax Error". (Also, just kidding about the -1) – Charles Salvia Feb 23 '11 at 15:49
  • 1
    Although I would love to agree, I disagree an example: Good programmers are curious, Good programmers are proactive and don't need to be told what to do (Correct, how about growing up to a patriarchal society where curiosity is punished or you have to be told what to do by a senior and be proactive only when there is no other option)? I really wish things were as you describe, maybe in a generation or two... – Dimitrios Mistriotis Feb 23 '11 at 16:48
  • @Charles - lol, my syntax error had a syntax error. – jmort253 Feb 24 '11 at 03:07
  • @dimitris - If we get into this mindset now and discard excuses, we're more likely to reach our goals. Making excuses based on our past won't help us achieve them. – jmort253 Feb 24 '11 at 03:10
  • 1
    @jmort253: It is a very big discussion and we might be off topic. I just believe it is difficult for a person to change behaviour overnight or more over to behave differently in social or work landscapes. I did not mention that both approaches have benefits. Many people I know try to combine them by doing part of the job west and part east (based on the questions dichotomy) – Dimitrios Mistriotis Feb 24 '11 at 09:26
  • I wish what you are saying were true, but I have a wary eye on the power of bad ideas and ignorance to inhabit people's brains. The only thing I've heard that's a decent antidote is travel to other cultures. Maybe the internet and sites like this one also help that purpose. – Mike Dunlavey Feb 24 '11 at 21:38
22

I am a 21 year old undergraduate from India in my final years of Computer Science and Engineering 4 year degree course.

The very idea of writing this was to say that India is much more than an outsourcing hub. I hope the west sees it that way and instead of absorbing talent, the west should set up more hubs in India. There is some offensive content ahead, but if you understand the larger picture, you will understand what I am trying to say.

Education in India is in a very disturbing state with a workforce produced every year that has no or absolutely horrendous technical skills. The educational system is not at all competitive in terms of innovation or entrepreneurship. this has led our country to huge embarrassments like the recent indigenously developed $10 computer (which turned out to be a cheap Chinese Android based tablet, only maintained by an Indian company), or an earlier claim of another technological breakthrough (which turned out to be a thumb-drive). Education institutes are totally disconnected from the real world of technology and are more interested in students reinventing the wheel, all in the name of innovation. educational institutes, everyone hates them.

Coming to places where you at least expect to learn some hot development skills:

I have had exposure to a few training facilities in India apart from my educational institutes. Programming and software development happen at two levels, application level development and system level development.

For application development, most freshers in India are mass recruited by companies to claim a sitting bench of programmers and to get more projects. At the end of the day, there is compromised quality because the hiring process is utterly stupid.Sometimes, talent is wasted by making people good at their stuff work, on stupid things like creating Java frames and creating simple WinForm and ASP.NET UIs only (I am talking about fresher recruitments and as claimed by some, though I am not sure). If not considering good software engineering practices, that kind of coding can be done by a 7th grader.

But at the same time, there are independent programmers and developers who have a keen interest in things. They are like the unsung heroes who have lost all hope and are least interested in changing the world. All they want, is to make the most out of their skills, so it is all about the money and going abroad. While our courses are hugely limited to system software (C programming using TurboC!!! for 4 frigging years, stupid and vague C++ without proper object oriented concepts using cout in a C program is not C++ , ASM and more C programing using gcc), when in a company, we are mostly made to do application development (ASP.NET, WinForms, J2EE). Basically, a Computer Science engineer is made to do the job of a Software engineer. Yes, knowing computer science helps, but not knowing proper software engineering hampers the process too much, and there comes plummeting the whole system. It is a #fail.

I will cite a simple example. I joined a training institute for my final year project and they wanted me to create an ASP.NET website which would be something of an inventory system (hotel booking, CRM that kind of stuff). Yes it is not an easy task, but not worth working on a project in my opinion. It will just be reinventing the wheel and these projects are huge by nature in a real life. Delivered in 6 months by a group of 3, you can understand the kind of scaled-down unusable system that will result from this. The institutes do not stress too deep and they are more interested in "not scaring the student telling them too much" and "giving an overview, and letting them learn the rest on their own". At the end, what people develop in projects is not even a fully tested prototype, let alone put it up for real life usage.

I took my own topic, a voice guided real-time navigation system. I am using WPF, Google maps API and all the latest in tech that I can. For good Software engineering practice, I am using source control, using MVVM and will give a thorough look at anything else that I come to know of. I am 21 years of age and am a graduate. I guess at my age, people in west are still in the learning phase and become graduates at a later age. That makes western graduates so much better and more knowledgeable. We have quantity but no quality.

In India, the level of work I am doing for my project is generally not expected of a final year undergraduate project. But, I will do it because I want to. At the same time, there are others in my group who are comfortable doing a project in ASP.NET, make 5-7 pages, run database queries, fill up grid-views and not give a damn about security. Hell, even those freelancing websites have better job postings (YouTube clone, Google instant + X = Y Mashup..)

Six months down the line, you will find the same people working in a company that you outsource your business to and you will find me there too. People like them, outnumber people like me ten to 1 :(

to be exact and not ranting, in my whole educational career and acquaintance with over ~500 people, I have seen exactly 4 who had the level of expertise that I would consider them for working on a project with me)

Ultimately, all Indian graduates will write good documentation because it is theory, but do not expect any fool-proof code from them.

Coming to system software, the same is the case. A friend of mine is working with the Android NDK and is working on a live project at a company. He is fortunate to have got this project and I envy him, but this level of work happens in India too. Another senior at my college developed a kinect clone (multi-touch mouse, like in minority reports) in his final year project using just 2 cheap webcams. Equally, there are others who copy codes from the Internet and somehow get a degree reinventing the wheel.

My final word, do not expect a compromised quality all over India, and do not take Indians for granted as cheap software maintainers and suitable for outsourcing only maintenance job.

Also, do not expect that someone who has a good educational background in terms of marks to write good software. India's education system is all theory oriented, there is no stress on practical, sometimes, knowing more or the willingness to know more can land you in trouble from teachers who feel intimidated. Nevertheless, good programmers look for greener pastures in a better career and not just a good job though, there are others who want to land up a good "job", drive around a Honda City, eat out at Mainland China and live happily ever after.

I am more into Audi btw. :)

Chinmoy
  • 101
  • 5
18

Warning, gross generalizations ahead. Viewpoints expressed are not shared by everyone. In fact, the author may not even believe them.

Western developers are afraid of eastern developers. We hear time and time again that our jobs will eventually be outsourced. This is a bad start to any relationship. To make matters worse, we're constantly reminded that our educations are inferior. Eastern developers are cheaper, smarter, and will put up with more hassles. Our professional experience with eastern developers doesn't matter because it's poisoned with fear.

Scant Roger
  • 9,038
  • 2
  • 29
  • 47
  • 24
    Actually, western developers are not afraid of eastern developers but of outsourcing managed as a simple reduction cost operation. – mouviciel Feb 23 '11 at 11:14
  • 2
    which is the same thing. The $5 an hour Vietnamese programmer is a direct threat to our job, because even if you need 10 of them to do the same work a single one of us does, it's still cheaper. Or that's how management calculates, never taking the long term implications into account. – jwenting Feb 23 '11 at 12:52
  • @Scant Great point! If I am a CEO of XYZ company and I want to have a software, I would first go for cheap and than quality. – Chris Feb 23 '11 at 15:18
  • 8
    "To make matters worse, we're constantly reminded that our educations are inferior"? Where did you get that from? Outsourcing is a fact of life, all companies are looking to cut some costs. Eastern developers have absolutely nothing to with it. You shouldn't be fearing them you should fear your boss/client that choses to outsource and cut costs without considering the impact on quality. It's actually the other way around, our education (I consider myself western) is way higher hence our cost is higher. – Alex Feb 23 '11 at 17:41
  • @Alex : There's a difference between education potential and actual education. From what I seem to get from US TV shows and movies(admittedly not a good source), people do not seem to be interested in science as higher education. And due to economic differences education costs are higher in the US, but so are the items of same quality like food etc. – apoorv020 Feb 24 '11 at 07:17
  • 2
    @Alex: re. education. US education is not what it could be, or once was. I taught CS at Boston College, a highly-rated competitive-admission school. First program: convert Celcius to Fahrenheight, F = C*1.8+32. Glazed eyes and fright around the room. Write a project proposal. Can't write a sentence with punctuation. Can't spell - considers "alot" a word. No idea when to use "he" and "him", "I" and "me", or apostrophe. Say "comprise" and "going forward" like big-shots. All expect at least B+, if not A. You just teach at their level, and every semester you get a new batch. – Mike Dunlavey Feb 24 '11 at 17:37
  • @apoorv020, @Mike Dunlavey, you're missing the point. @Scant Roger refers to "eastern developers" as people to be feared. I strongly disagree. 1) I don't think they have a higher education; 2) western developers are on average smarter than eastern developers - I'm not saying Indians are dumb I'm saying Indians working in software development, on average, are less smart than eastern developers but for sure you will find pretty dumb people anywhere you look actually; and 3) it's not really them we should fear but economics itself where outsourcing is the only way to survive as a business. – Alex Feb 25 '11 at 18:15
  • @apoorv020 Compared to other countries, higher education is very expensive. Unfortunately, barriers for entry are being lowered and the overall quality of higher education is generally going down. The issue isn't with interest or higher education, it's with middle/high school level teaching. The No Child Left Behind Act introduced during Bush pits schools against each other for funding by judging their merit based on student test scores. The response by the schools to seek more funding was to change the curriculum to teach students to do well on the tests. – Evan Plaice Mar 18 '11 at 16:12
  • 3
    @apoorv020 (cont) The problem with this approach is, middle/high school has changed from an environment that is supposed to teach skills to students that will help them be successful, to teaching them skills that will teach them to get better test scores and make the school look better thereby pushing more of teaching of fundamental concepts into college (thereby devaluing higher level education). It was a miserably failed attempt to apply the economics of the marketplace (Ie competition) to the public school system. – Evan Plaice Mar 18 '11 at 16:16
  • @apoorv020 (cont) As a result, students graduating from public schools are even less prepared to take on the challenges of adulthood. The problem is, in the bigger picture of things college isn't cheap. It ranges anywhere from a few thousand dollars a year for State/Community colleges to an upwards of 60K/yr for private colleges and it's getting much harder to get into good schools because of the rising need to attend college to be prepared for the challenges of adulthood. It's not that kids in the US are dumb/lazy. Many know that the materials they're being taught in high school are useless. – Evan Plaice Mar 18 '11 at 16:23
  • @apoorv020 (cont) Also, don't take what you see on TV as representative of US culture. Most of it is satire or caricaturization (not to be confused with characterization) of our culture. Ie our favorite past time is laughing at ourselves (it's a culture thing). – Evan Plaice Mar 18 '11 at 16:28
  • @Alex: You don't think the Eastern have a higher education? I once had a colleague from Russia who had a degree in Maths. For his trial period his future boss asked him to implement a small Pascal compiler in three months. He had never programmed: in three months he managed to learn enough programming, Pascal, compiler construction, and he built a compiler. I have many other colleagues from the former eastern block and they all have a very solid education. Some eastern countries do have a very good education system (I am a West European). – Giorgio Jan 03 '12 at 11:28
18

I have been working for 3 years with indian developers (I am italian). People are people. We outsourced mainly beacuse we needed a team, and in italy it is difficult to find a team, expecially in not popular languages like Delphi. So the main reason is finding a team, not cost.

Anyway the team we found was very good because it had a very good leader. But the other developers were not so important. What happened? now that developer works directly for us, because he is a very nice person and he become also my friend. There is a strong relationship and also we pay him almost an italian salary. Why? Because relationship matters. I've seen many people going to India just to save.

You get what you pay for. Then of course you can save some money, but I think that (expecially for small projects) doing outsourcing only for saving money is a wrong choice.

jsight
  • 101
  • 4
user193655
  • 587
  • 1
  • 3
  • 14
  • 2
    I think he makes a good point. If you are outsourcing to cost money, you might perhaps be picking very low-cost teams. Outsourcing to bigger/quality vendors may perhaps save less money but have more benefit. – apoorv020 Feb 24 '11 at 07:19
18

I can't speak for others. This is my opinion, which people don't seem to disagree with. Let me start with some of the facts as I see them.

First, there is evidence that most people aren't really cut out for software development. (For instance UI research indicates that over half the population will probably never "get" the idea of a directory tree.) In the West, those people have no problem finding other decent jobs that they are better fits for. In India, by contrast, there is so much pressure to go into software development that they do anyways. This means that there are a lot of people in India going into software development who really shouldn't.

Next, India is a common destination for outsourcing. Companies do this because it looks cheap (salaries are low). However it is well documented (for instance see the documented cost factors in the COCOMO II model) that all of the following increase required development time and effort: workers at multiple locations, workers in multiple time zones, and workers from multiple cultures. Any project run in India and directed from the West will have all three cost factors. (This is before you add the tendency to find people working as developers who really shouldn't be.)

Finally the absolute biggest challenge in software project management is getting accurate information about what is not working to the decision makers who need to know it. I like this humorous take on that tendency. For whatever combination of reasons, be it desperation, culture, or a belief that the customer is right, this tendency is worse in projects that have been outsourced to India. Sometimes to a comical degree.

The result is that there is a strong tendency for American companies to succumb to the siren song of low wages, outsource work to India, and then for the outsourced projects to turn into disasters. (But the extent of the disaster is not apparent until after Americans have lost their jobs.)

The other way that companies go is to hire Indians into the USA on H1B visas. This gets rid of the remote worker issues. Many Indians want these jobs because salaries are higher in the USA, etc. And there are more than enough truly excellent Indians out there to fill all of the available jobs. But there is a problem. American companies hiring on H1B visas are required to swear up and down that no Americans were available for the job, that the hired person is being paid market rates, etc. But someone on an H1B visa has a hard time switching jobs. This gives the employer a captive worker. And leaves no market incentive to actually treat those employees fairly. This gives companies strong incentives for dishonesty. Too many succumb. The only thing limiting the rate of abuse of this program is that there are caps on how many H1B visas are granted each year.

As an American I have no problem with the best and the brightest coming to the USA. Quite to the contrary, that is what built this country. But treat them equally once they arrive. For instance I know a person from the Philippines who, due to his visa status, has had to turn down job offers from Google, Apple, and Facebook. For about double what he is currently making. If the market was allowed to set the salaries of people like him, there would be a lot less incentive for companies to try to abuse the H1B program.

So there is my opinion. For a number of reasons, outsourcing projects to India frequently leads to disaster. The ones you get as H1B workers tend to be excellent, but that program is heavily abused in ways that make me sad.

btilly
  • 18,250
  • 1
  • 49
  • 75
  • Just curious, one guy that had job offers from Google, Apple **and** Facebook? – Htbaa Feb 23 '11 at 15:50
  • Why can't you switch jobs while on H1B? I've heard there is the thing called "transfer" and it's basically a standard routine with guaranteed approval in practice. –  Feb 23 '11 at 16:20
  • @Htbaa: Let's just say that there is a good reason why he sticks out in my memory. I am actually not positive that Google gave him a final offer, he may have broken out of the interview process before then. But I'm confident that Google would have given him an offer. And he definitely got offers from the other two. – btilly Feb 23 '11 at 16:22
  • 2
    @developer-art: I don't know the details. But the particular person I am thinking of was in the process of getting a green card, and was stuck in his current job until the paperwork cleared. In his case the paperwork has left him in limbo for over a year and a half that I know of. I've known other excellent people who have run into INS trouble and have been forced to leave. For instance Abigail of Perl fame encountered this in the late 90s. – btilly Feb 23 '11 at 16:30
  • 2
    @dev-art: Your H1b is tied to you being employed. You could I think switch jobs, but if there's no seamless transition your work permit automatically expires. And of course if your new job doesn't work out and you get cancelled during the probation period, you're an instant illegal alien with just a few days' grace period to find a job or leave the country. – jwenting Feb 24 '11 at 07:54
  • 3
    The way some corporations use H1Bs to basically keep programmers on a leash makes me sad as well. I know many people who are in this situation. When you're on an H1B, you can only get one extension (for a total of 7 years, I think), so most H1B workers are trying to get a green card. Many companies won't even start that process (which takes years itself) until years after hire. Add to that the fact that if an H1B wants to switch jobs, the new company has to re-sponsor him and may delay the green card application further, H1B workers have a lot of incentive to stay put, which gets exploited. – Kaypro II Feb 25 '11 at 15:53
12

IMO the problem is not East vs. West, but the general idea of outsourcing. Back in the second half of the 90s, the internet boom, Y2K and the Euro currency conversion created a lot of work for programmers, so outsourcing was a hot topic back then. But it was outsourcing within the country, not to the East. Still, many of the problems we expect or experience with offshoring also happend with local outsourcing partners.

In many cases, writing a good specification is about as much work as doing it yourself (albeit Q&D). But since the goal of outsourcing is to save time and/or money, the specs given to the outsourcing partner are sketchy. Add a contractor paid by the hour and a lack of supervision and it's clear what you have to expect.

user281377
  • 28,352
  • 5
  • 75
  • 130
11

I have been living in China for little more than two years now (I'm Canadian) and working with Chinese developers and, strangely enough, working with Canadian Developers overseas. I can say that some of the generalizations made of, at least Chinese, developers are somewhat true that is, most developers I have met/worked with here are :

  • Lack curiosity and creativity. Here I do not think they are inferior or stupid. But rather that it is cultural. Historically they are thought to respect authority first and foremost. As such they will never question a bad design handed to them from "above". Also many of them are mostly interested in technical skills rather than domain skills. I have the hardest time teaching them about patterns and abstract concepts unless they can directly relate to their work at hand. However, after a while, the walls crumble, they get more adventurous in challenging authority, at lest on a technical level, I would not want to get my visa revoked ;-)
  • A threat This has been mentioned before but I emphasise. This is probably the single most important point and what creates the most tensions in dealings with colleges overseas (that is in Canada). In general, the westerners I work with will tend to exaggerate all the negative aspects of working with Easterners. They will be extremely harsh on code reviews while being very lenient to each-other. They will kick and scream if a single oversight on process or good practices is overlooked by an easterner but will themselves kick and scream if asked politely to follow the procedures they themselves put in place.
  • Expendable it is ok for a Chinese to work with half baked second hand equipment. I broke three chairs before I was allowed to get a semi-comfortable one. Then I felt bad to get the good chair noticing that they all still had what seemed like medieval torture apparatus to sit on. However visiting the head-office of the same company the devs there had desks that took the floor area typically occupied by a team of 4 to 6 devs here in China, not to mention the chairs !

In the beginning what they wrote was not always very good. There is the cultural divide for sure but also the long steep learning curve of a badly designed system to begin with. But you know what... after two years... some of the best work done on this system comes from the chinese offices. As this comes more and more visible this exacerbate the threat element even more...

Frankly it's not easy but I think I am on the right side of the fence when looking at the trend from personal experience.

Newtopian
  • 7,201
  • 3
  • 35
  • 52
  • 4
    "They will be extremely harsh on code reviews while being very lenient to each-other" & "but will themselves kick and scream if asked politely to follow the procedures they themselves put in place" - It is true as per my experience too. I have seen this happening on many occasions. – Mugen Aug 18 '11 at 10:13
  • @Mugen - I would caution that I certainly see this with any vendor-customer relationship. Stuff might be done in-house to poor quality, but as soon as it's outsourced, now the customer can demand strict adherence to the specification, and they do. I've seen it in manufacturing, not just software development – Scott Whitlock Nov 04 '11 at 16:44
  • @Scott Agreed. I've seen it there too. – Mugen Nov 09 '11 at 15:31
9

This is a fascinating topic. I've worked in SF and Silicon Valley, but also Europe for local clients, setup an offshore office in India and now run an offshore development shop in South America. I've even done a little bit of work with African developers.

Every region of the world is capable of producing great programmers. I've got a hacker friend in Malawi who's build amazing touch interface rails backed open source systems for HIV clinics, using and contributing to open source projects in important ways.

I've also seen American programmers working at name brand startups and major web companies who couldn't program their way out of a paper bag. People with masters degree's in Comp Sci from MIT and years of industry experience, who when it came to writing good production code, couldn't cut it.

There are very real cultural differences between Europe, Latin America, the US, and India. Then there is hacker culture, which is more or less universal.

The mainstream indian tech community likes to throw people at the problem. The hourly rate per developer might be less, but if the vendor believes in quantity over quality, you'll need twice as many dev's to get the code running.

Certifications. What the hell? India loves certifications, ISO, CMMI, etc... it goes on and on. It's meaningless ass covering. More to the point, it's not how you get good software developed.

The caste system. The caste system is illegal in india, and since independence there's been tremendous work at eliminating it, but it's still a living breathing beast. Most westerners ignore the existence of the caste system. I grew up in the US, but my father was born in India, anglo-indian as it's called, and my mother went to university there as a student, and then returned to teach much later at Indian universities. The caste system is very real, it comes from india and is old, but the british encouraged it and used it to maintain power. Westerners need to know, that they'll take the place of the british, at the top of the hierarchy. You'll get called sir, you'll not be questioned. Most indian managers see their role as telling their underlings what to do. Speaking back and offering alternatives is punished.

Not every indian development shop is like this, Zoho, has built an amazing indian business by breaking all the rules. They hire based on ability not caste or what university certification you've got. By doing so, they've bootstrapped a complete SaaS replacement to the MS Office Suite.

There's a vibrant hacker community in India as well with meetups, mailing lists, small conferences, and the like. These developers are world class good. They often find it hard to get work within the mainstream indian software development industry. I myself found two python dev's for our indian office, they were great, and then our indian manager insisted on hiring a dozen freshers, new graduates to fill out the team. After a few months the hackers quit, their manager had made their lives hell. We were left with a dozen young and enthusiastic employees, most of whom didn't know how to program very well.

The best of the freshers was a young woman who'd built an IDE for dev on embedded systems. Nobody wanted to hire her because she came from a conservative family and Indians thought she'd be forced to quit her job once she was married off.

There are great dev's in india, but the value structure is setup to push them out, and to promote people based on things that have nothing to do with creating great code.

The other big problem is the timezones. It's not an advantage, it's a huge problem. It means there is no constant direct communication between on site and offshore teams. This causes huge misunderstandings, and forces you to write reams of documentation. It makes agile very hard to pull off.

The sad truth is a huge amount of the software produced by indian corporations is low quality. You hear dev's all the time talk about how indian engineers are crap, it's not true, but it's a reflection of the quality of large traditional offshore companies. It's the fault of the business culture in India, not the developers themselves. The dev's are stuck in a bad system which rewards the wrong things.

rabble
  • 111
  • 3
  • it's in part based on management, but if there were no bulk of bad devs in those big companies (which are the main source of the bad software no doubt) there'd be no masses of bad code leaking out to the US and Europe from there. Of course the management as you say perpetuates the problem, maybe even encourages it, but they're not the ones writing that bad code. – jwenting Feb 25 '11 at 15:32
  • 1
    But these folks who can't program, wouldn't get hired if there wasn't a management problem. The Indian companies would just say, look, we're booked, next client comes in at a higher rate. It's one of those, refuse to say no things. Management says yes, and puts a warm body down to code who has no enate ability to code. – rabble Feb 25 '11 at 15:55
  • 1
    +1. Interesting post. I find your statement that real hackers are marginalized and can find it difficult to get work in India depressing but horribly plausible, sadly. – Faheem Mitha Feb 27 '11 at 21:24
8

Blunt and cynical:

  • Cheaper
  • A threat
  • Lack of appreciation that you trade local code monkeys for more expensive project managers and analysts to liaise with the off shore teams
  • Stakeholders will get what they asked for because of their inability to deliver a concise and comprehensive requirement. This won't be what they wanted. Stakeholders want local knowledge...
  • ...but it's box ticking for senior IT management because it's trendy/popular/KcKinsey said/don't understand developers/...
Bjarke Freund-Hansen
  • 1,176
  • 1
  • 11
  • 18
gbn
  • 2,467
  • 1
  • 17
  • 14
  • Possibly they felt that it didn't meet the criteria for a good answer? It's high on opinion but low on supporting facts and experience. I don't think anything you say is out and out wrong, I don't think you support it well and it is heavily skewed in one direction, neither of which are in the spirit of the site. Anyway, not my down vote but I do think if you took this on board it would be a better answer. If you want I'm happy to make the edits for you because I get where you're coming from (except possibly points 3 and 4). – Jon Hopkins Feb 23 '11 at 17:02
  • @Jon Hopkins: Fair enough. Question did ask "Do you hold any generalized ideas or opinions about the programmers from the East". I've updated it. – gbn Feb 23 '11 at 17:08
  • just because they're general, it doesn't mean that they can't be supported. In terms of where you work, I have friends who work in finance and everything I hear says it's been the home of many of the worst handled outsourcing projects. – Jon Hopkins Feb 23 '11 at 17:25
8

I've experienced several projects offshored to Asia (different countries which I won't mention). ALL of them were dismal failures. Despite copious and detailed documentation, specs documents, etc. etc. being sent over the result (if anything was produced at all) was uniformly poor. Usually it either didn't work at all or was so marginally functional as to be useless. Projects were also (if they produced deliverables at all) seriously late.

OTOH I've worked with Asian programmers and others working in Europe and the US and most of them are good, hardworking people who know their jobs well.

Maybe a statement by several of them that all the good IT people leave Asia to work in Europe and America says it all. What's left there is the bottom of the pile, with little or no quality people to provide oversight, training, and team leadership to yield improvement. Having had to deal with Asian IT people living there (at least from some countries) over the phone and email (and seeing interviews on television etc.) there may be culture involved as well. Many seem to consider themselves racially and morally superior to Americans and Europeans (and consider those leaving their countries traitors) and refuse to listen to advise from whom they consider inferior beings. This is certainly not true for everyone from Asian countries, but may be widespread enough to create an atmosphere of "we know best, all problems are caused by the customer" in the offshoring companies over there. Of course companies appearing and disappearing quickly, rebranding themselves and starting again after their name gets sullied by poor performance, also plays a part.

The situation in eastern Europe is better, maybe in part because many of those countries are part of the EU so there's a bigger threat of successful legal action against them if they screw up.

jwenting
  • 9,783
  • 3
  • 28
  • 45
7

In my 10 years at IBM I worked with programmers all over the world in a variety of relationships. The first thing you learn is that the geographic stereotypes are all wrong, on both sides of the ocean. Programmers are programmers the world over... pick 100 of them from anywhere and you will get roughly the same ratio of folks that couldn't program hello world without a trip or three to google, folks that are decently competent and folks that are brilliant.

That said, the geographic generalizations of the business climate in some of those areas is accurate. India for example is a lot like Austin, TX or the Silly Con Valley were in the late 90s and early part of the 2000s... lots of job hopping and revolving doors, folks coming and going every year or so. China on the other hand seems to be a lot more like the Silicon Prairie here in the midwest of the USA, folks pick a company and stay there for a longer period of time. Brazil, Russia and Europe seemed to be somewhere in the middle, not so much that they stay a medium length of time, but that they seem to have a mix of the two, some folks job hopping, some folks settling in.

cabbey
  • 208
  • 1
  • 7
5

I belong to the Eastern world and I also have experience outsourcing work from my company to the Eastern world again :-) My company didn't want to invest is's own resources to get the job done, inspite of all the help we could offer to the Outsourcer the Project did fail. It was frustrating to work with some of these Engineers, I think the outsourcing models and the technical expertise can mature more on the East for the betterment. Having said that I have worked with a lot of people in the western world who can also improve. You find good and bad programmers across the globe.

Geek
  • 3,951
  • 1
  • 24
  • 29
4

I live in Central Europe. The outsourcing wave went over us during the recent years. I have worked on outsourced projects from "the West", but nowadays the outsourced projects land in cheaper countries. So I have been on both sides of the equation.

When we were the outsourcees our managers and the guys whom we worked with on a daily basis were nice, treated us like an in-house developer. A slight concern about job security could be felt from the rest of the people, what I considered perfectly normal. Also, we got the second-rate tasks in a bigger project, which is also fine by me, you shouldn't outsource your primary expertise.

Then the projects moved to cheaper territories, which was kinda inevitable.

The bottom line of the whole outsourcing story is that management doesn't give a rat's ass about your knowledge, experience, education or know-how. All they care about is the costs and their bonus. So unless there is a reason why your local presence is needed, software projects will be outsourced eventually to cheaper and cheaper countries.

Karl
  • 517
  • 2
  • 4
4

I live in Russia, Siberia and work for German medical company which outsources projects to us. I guess it is a bit more than outsourcing: we have shared teams between Russia and Germany, we have business trips to each other, etc.

Of course I'm subjective, but I believe we are an example of successful outsourcing: code quality and product quality is raising significantly since we started working on it.

It is a bit disappointing to be a cheap labor force, but on the other side we have a chance to work for a big company with great technology and management experience.

SiberianGuy
  • 4,753
  • 6
  • 34
  • 46
4

Disclaimer: I am Indian and this may sound an Indian's view but I have worked with many western customers and even in US. If eastern hemisphere had the worst programmers in the world, why would western hemisphere outsource to east? If you outsource to eastern parts of the globe just to save bucks you are, IMO, compromising quality. Good, fast and cheap, choose any two. When I have to hire a guy I ask my organisation what are their expectations and what are the price they are ready to pay. Its really hard for one to convince a talented self esteemed guy to work for you for lesser pay and more pressure. Its just those freelancing sites combined with unfortunate western guys whose jobs were Bangalore-d that resulted in eastern programmers are code monkeys. If you are ready to pay better price you will be assured of a better result, and do not follow those ISO/CMMI/SEI kind of service companies. They hire talents like they are rearing a herd of sheep or live stock.

Kumar
  • 723
  • 2
  • 7
  • 11
  • 3
    "If you outsource to eastern parts of the globe just to save bucks you are, IMO, compromising quality. Good, fast and cheap, choose any two." Often those making the outsourcing decision don't know or care about quality, as long as they get something that works for a while cheaply... – jwenting Feb 24 '11 at 07:30
  • 1
    I understand. And those who make decisions are managers, if a manager doesn't know or understand the project triangle, he/she is incompetent. Ideally their incompetency must not result in a stereotype but NTP(http://en.wikipedia.org/wiki/Normal_temperature_and_pressure) conditions only exist in labs not in real world. – Kumar Feb 25 '11 at 04:03
  • 2
    "Why would western hemisphere outsource to east?" - Because the people who make the decisions aren't really in the best position to make good ones. We're talking about executive-level managers with executive-summary levels of understanding, preoccupations with budgets and money, and a short term time-horizons. – Kaypro II Feb 26 '11 at 00:26
  • @Cosmic I do not see Google, Yahoo!, AOL or MS making any complains about poor quality of programmers, they hire best talent and get the best out of them, hire the crap regardless of east or west and you get crap. – Kumar Feb 26 '11 at 10:32
  • @Kumar I was trying to answer your question as to why someone would hire bad programmers in the first place. I should probably have made that more that clear. I don't know how one would tell if Google or MS were "complaining" in this case. Are we talking about the CEO-type people making public statements, or line level people with personal experience? Google and MS are also exceptional companies, and I think it's difficult to generalize from them. I think the typical outsourcing decision (onshore and offshore) is made for reasons of cost with little attention or understanding of quality. – Kaypro II Feb 27 '11 at 19:23
  • @Cosmic, you are right. And then these CEO-type guys give a bad impression to the whole ecosystem of outsourcing. – Kumar Feb 28 '11 at 04:23
  • @Kumar: yes and no. Without such decisions there'd be no place in IT for a lot of the people working in outsourcing, but if those people offered higher quality services the image of the industry would also improve. – jwenting Mar 02 '11 at 07:34
4

I am an American currently living abroad (in Russia) and working as an entrepreneur (and freelancer on the side to pay the bills). I worked in Silicon Valley as a developer, technical team lead, and software/systems architect for over 20 years for numerous companies and startups, some very well known, including one startup which eventually grew to be an industry-dominating multi-billion dollar major international corporation. This last corporation (call it "X") has development centers all across the US and the world: India, Russia, China, Europe, etc. I worked directly with members of some of these teams, and found them to be highly talented and worthy engineers. Assertiveness and creativity I will agree tend to be a more American engineer personality type at the moment, but that will not last for long I believe as freelancing and outsourcing mature.

  • Outsourcing is very clearly about the money. When I left the US, X was not hiring in the US, but was hiring in international offices. X pays non-US engineers about 1/4 to 1/3 (depends on the region) of the salary of an equivalent (years experience, skills) US engineer. Which is still a pretty good salary usually considering the economies of some non-US locations, but this is not good for the pay rate the very existence of US engineering positions.

  • I believe freelancing is the future of computer work, software especially. By its very nature it is highly portable, all you need is a laptop and an internet connection and you're in business. There is always a case to be made for internal on-site teams: more reliable scheduling, predictable skill sets, etc, but they are very expensive to maintain.

  • I see rather frequent, arrogant postings here from US engineers about how terrible all non-US developers are (take a look at, for example, this thread: https://stackoverflow.com/questions/209170/how-much-does-it-cost-to-develop-an-iphone-application). The stereotype is that yes, they're cheap but always also un(der)-qualified and write crappy code. That the only way to get quality is to pay US pay rates to US engineers. Poppycock! US engineers need to wake up -- the industry and the economy is moving away from very highly paid in-house developers to distributed development teams spread around the world. Sure there are bad non-US developers -- but just think back to all those US interviewees who you passed on because they didn't measure up. Some of the absolutely most atrocious code I've ever had to look at or work on was written by an in-house US engineer, who refused to change or improve! Just because some random elance developer did a crappy job doesn't mean that all non-US engineers are terrible. Instead, that elance client should look a bit beyond the bottom bidders, there are real gems out there, top developers even, available at a big discount to in-house US rates. At this particular instant in time, I will grant you, a lot of talent is concentrated in the US -- but anyone who thinks this will never change is very seriously deluded.

  • Talent and experience do cost more than the lack thereof, I will grant you that. But the thing is that the pay scale of US in-house employees is way out of whack with that of the rest of the world. There is a dynamic talent/cost continuum constantly on the move, and the background ambient talent of non-US engineers is only going to go up, which is going to place very strong downward pressure on both US pay rates and the very existence of highly paid US in-house engineering positions (remember: X is hiring internationally, but not in the US. The writing is on the wall). So the more talented will always be able to charge more than the less talented, but you can be sure it won't be at the current going US rates.

  • The concentration of talent around the world is absolutely going to change, just as the physical location of development teams has already changed. Non-US talent levels are going to keep going up, and in the not-too-distant future we'll look back at these threads and think "what were they talking about, you can find top talent anywhere in the world".

Bogatyr
  • 101
  • 2
  • ah yes, but all those bad interviewees were rejected. If you outsource to a consultancy, you get whoever they hired - and they hired practically anyone to get the headcount to sell to you! I think this is the ultimate problem, it isn't about good or bad devs its about not having any control over which dev you actually get. – gbjbaanb Jul 22 '11 at 09:28
  • Thus the importance of finding a good, trustworthy consultancy, and that doesn't come cheap. Also, note that in the case of some of the consulting groups I've worked for, indeed the customer *does* interview the developers potentially assigned to the job. – Bogatyr Jul 25 '11 at 13:55
4

I have worked both in the eastern and western part of the globe and thought would share. I had worked in Bangalore for 5 years before moving to US. Worked in the US for about 8 years and returned back to India. I was forced to sit at home because the jobs are too demanding here. With 2 young kids it was impossible to put in those long hours. Finally found a part-time job. I was shocked to see the quality of work back in India. It wasn't this bad when we had left to US. The young crowd just does not seem to have any responsibility or the enthusiasm to learn new technologies. Like somebody pointed out, saying 'no' is rare (a blow to their ego, IMO) and as a result you will see totally useless or mediocre work. The code is non-readable, no idea of the big picture at all, no scope for expansion, etc. By the time you train a guy (s)he is ready to jump jobs for a greener pasture. Having said that, I would still say there are few exceptionally good ones. If you happen to work with him/her, consider yourself lucky, especially if that person can communicate well!

3

If the quality of the work is poor it is perhaps not so much that they look to India but they look to whoever makes the best bid, and that is likely not to be the likes of Prasoon Saurav but some junior coding team.

CashCow
  • 1,610
  • 13
  • 16
  • and this is true with outsourcing to companies employing people in the same country as the requester – mmmmmm Feb 23 '11 at 13:54
  • yes and no. Because companies in the same country as the customer have to be more careful with quality issues (because of the more serious threat of successful legal action against them if they make a mess of things) problems there tend to be resolved better rather than persist. This has nothing to do with India as much as with dealing with companies in far away countries with no strong legal ties with your own (it could have been Burundi or Equador rather than India, same result). – jwenting Feb 25 '11 at 15:21
3

I'm from Switzerland. I've worked on one project where we outsourced to Ukraine. Developers where much cheaper, but the money we saved had to be re-invested in flying our team to Ukraine every other month to oversee this nearshore team. The project died about one year after it was outsourced.

I am now working on a project which is outsourced to a Swiss company, which itself nearshored it to Morocco. The project is well on its way, but we do have communication problems and quality problems.

I think the main problem is that we offshore project to get them built cheaper. It's always hard to get things cheaper but of the same quality ...

Guillaume
  • 745
  • 4
  • 7
3

I've worked with great offshore programmers, but they were not outrageously cheap to hire. I've also worked with very inexpensive offshore programmers, and they were not great.

It's always seemed to me that great programmers in the east probably find a way to get paid as much or almost as much as the great programmers in the west; maybe they launch their own company, maybe they get a visa, whatever they can. But they'd tend to find a way, right?

When seeking out a team of programmers willing to work extremely cheaply, I wouldn't expect to get top-tier talent. True no matter where your talent lives.

Havoc P
  • 918
  • 6
  • 11
2

Very bluntly, and very generally, I don't believe that programmers in 'the west' have high opinions of programmers in 'the east'. I'm not sure if this is justified or not.

As some answers suggest, outsourcing is a threat to many in 'the west'. This is an automatic reason to distrust the 'rival' programmers.

I've only seen bad code when looking at outsourced projects, and only a small number of times. This could be because the work went to a cheap shop ("you get what you pay for"), because the project was poorly managed, or most likely because if the project was successful then I wouldn't need to look at the code. In other words, you only hear about the bad code.

There are also horror stories - like the above 30000 line file. Again, the worse the story the further it will spread.

People will say things like 'If you want it done cheap, outsource. If you want it done right, do it in-house.'

If you're learning and improving then I wouldn't worry about it too much.

Kirk Broadhurst
  • 4,199
  • 18
  • 27
2

Some of the largest IT companies in the world are in India, if you heard of Wipro, Infosys, TCS etc. The largest Indian companies, whom most "western software professionals" could never afford to offshore would easily qualify as the world's best in quality. They get every certificate under the sun regarding quality just to allay the fears of western clients. Also there are more engineers(degree and experience) in most Indian software companies than most western companies. Also Google, Oracle, IBM, Microsoft, SAP all have development centers and not all of them are there looking for cheap programmers.

So how do we see the western engineers. We see a mixed bag like you see a mixed bag when you look over the ocean. There are qualified super technical people whom we admire and there are douche bags whom we might be forced to work with sometimes. By and large we get along really well in mixed teams. The relationship really sucks if you have "technically oriented" business people in the western end and just programmers at the other end. This is usually a cash starved western company looking to make save some dollars by not hiring a local manager.

Mamta D
  • 643
  • 1
  • 5
  • 13
  • "would easily qualify as the world's best in quality" [citation-needed]. Seriously, having some ISO certifications doesn't mean you manage to actually build high quality software. – wds Feb 24 '11 at 11:01
  • correct. Wipro is one of the main sources of disaster projects. – jwenting Feb 25 '11 at 15:35
2

Disclaimer: I do not have any direct experience with outsourcing myself. Below, I present some points that came up when I discussed the topic with a project manager in a large western software company. This guy has spent a lot of time on the ground in India, overseeing outsourced teams.

  • Almost no-one has a computer in their house (too expensive).
  • India's IT education is lacking. Bachelor's degrees in CS are given to students who has never touched a computer (again, it is too expensive to give lower-level students access to computers). Programming assignments are written on paper.
  • The "always say yes" mentality is very damaging
  • Indian programmers need to be told exactly what to do. There is very little initiative.
  • Outsourcing software development to India has been a disaster
  • Outsourcing of some QA tasks has worked OK.
  • Misc.:
    • Electricity is very irregular
    • India is more or less a police state
    • India seems to be politically unstable and has a terrorism problem.
    • Given an option, no-one will choose to live in India.
2

My experience with outsourcing to eastern countries (not eastern europe) has been pretty bad. All of the applications I've seen have been horrendous and just look like a bunch of bad unrelated code glued together to barely do the job it's supposed to do.

I don't think this is due to new eastern programmers being any worse than new western programmers, I think it's due to the eastern programmers not having experienced programmers to guide them. In the western world, working with modern programming languages has been a common profession for ~45 years so there are many experienced programmers that new ones will work with who you can learn from. In the east modern programming has been happening for what? 10 - 15 years? There's a real lack of experience for people to learn from. On top of that, I think (the way I see it from here is) that with most of the programmers in the east who work is being outsourced to, they pick up a lot of bad traits where the goal is just to get the project done quickly by cutting corners, which is experience you should not be passing on to new developers. In the US at least, most programming jobs have been for people working on a limited set of products which they have to support over time. So people have picked up techniques to ensure that the software is stable and secure... this is good experience to pass on to the new generation.

So yeah, basically I don't see it as having anything to do with the amount of schooling a person anywhere gets, it has to do with habits picked up on the job. There are plenty of good programmers out there (though i think they are well in minority) but I don't think they're the ones us westerners will interact with when projects get outsourced.

As for eastern europeans, they have the experienced developers out there. I'm just afraid that they may be phased out to meet the demands of outsourcing.

2

@giddy, Peter: As a programmer hailing from India, I'll have to admit to the truth, sad as it is, of your statements: programming in India is not something people take to out of choice, but out of compulsions, be they social or economic. That's one reason why it's very common in India to find people quickly moving away from technical jobs to purely managerial ones (it's actually called "moving up the ladder", a phrase I've come to detest). Even if you want to continue growing as a techie, managerial roles get foisted on you (that's one reason why I decided to move out of India, actually).

For reasons that are beyond me, career growth is equated with the number of people working for, or to be more accurate, under you. "I am responsible for a team of x" or "x people work under me" is a statement that's considered to be worthy of a "successful" person in India (never mind that the "x people" may be the ones producing the kind of code that has been referred to by others in this thread).

Having said all that, I do like to point out that poor code quality is not something that's confined to India or other "low-cost" countries alone. I sometimes see familiar attitudes and code quality even here in Europe. Thankfully, they're not the general rule though.

JamieJag
  • 101
  • 2
2

I have had mixed experiences with offshoring our work, and just working with offshore companies in general. For reference, I live in the United States.


The Bad

I worked at a company that contracted a company in India, which had been appraised CMMI 5 and would work on the cheap. The company gave them some client software to write from scratch, and when it came back, the code was buggy, completely undocumented, and generally difficult to refactor and maintain. The company ended up just writing the entire client from scratch and ate the cost of the offshoring.

In another instance, a company I worked at partnered with a company in Asia to introduce their services and products into the eastern markets. What happened was a secret story that only a few people knew (and myself by proxy) where the Asian company took our source code and product designs, broke the partnership, and then released their own products that were the same as my company's.


The Average-ish

In yet another instance, a company I worked at opened up a research office in China, very modern place, they had fancier stuff in their office than I did in mine. I was sent over to the China office for a week for training, as the R&D facility was going to be used for doing custom Linux development. The team did have some people who were pretty good, but as is the case with developers of that stature, they left pretty soon afterward, and the remaining team wrote an API for us to use back here in the States. I'll call the API completely bad because it showed no understanding of Linux, and the underlying source code was pretty wonky at best. But I think the big problem there was the company chose a strange team to give the Linux work too, as no one on that team was a Linux expert at all, and that project was scrapped a year later. I actually liked working with the people from that team, but their management and my team argued a lot over the Linux debacle.


The Good

In other instances, another company I was in contracted work to a company in Eastern Europe. Those guys were really good, they were contracted to do vulnerability testing and while they were actually pretty expensive, they were generally seen as a worthy investment.

I've also worked with a rather gigantic Indian IT services company, and we had developers in-house that were employed by them but contracted to us. There were several good devs there, but that's a more general story as we all worked together on various projects.


These stories are for amusement - I've worked with multiple companies, and I have stories about domestics and foreign companies.

For some of the companies - communication was always the difficult part. I work on Eastern time, and we'd be talking with people 10 - 13 hours ahead of us. We'd also go only through management, not talking to actual developers, so there was a disconnect there.

There were also devs I met who just didn't enjoy their job. We had a Korean dev in, who wanted to come to the states to work because he worked slavish hours for low pay for a defense company in Korea. I was coworkers with a dev (also foreign) who lamented his choices in becoming a developer - he did it to try to make millions.

wkl
  • 2,700
  • 2
  • 17
  • 17
  • `The company ended up just writing the entire client from scratch and ate the cost of the offshoring.`. We had this problem twice. – Olivier Pons Nov 02 '11 at 09:35
2

Interesting! I'm Chinese and I think I know why programmers here lack curiosity and creativity. Most of my coworkers complain everyday, they hate coding, they dislike designing, they just gossip here and there(it is part of our culture). They come to software companies just for a higher pay(in developing countires, IT guys are well paid), not for "saving the world" or making a difference. No interests, no motivation, no curiosity and no creativity!!!! But there are smart heads(like me ^_^), they do quality works and deliver on time!!!!

1

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.

Ian
  • 4,594
  • 18
  • 28
1

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...

  • "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 '11 at 08:46
  • It's telecom R&D, so while they do lots of programming, the research isn't in primarily in computing or programming. –  Feb 24 '11 at 17:30
1

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.

卢声远 Shengyuan Lu
  • 1,539
  • 2
  • 16
  • 25
1

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.

  • 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. – Christopher Smith Mar 01 '11 at 17:14
1

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.

Mâtt Frëëman
  • 457
  • 3
  • 8
1

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.

  • "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](http://programmers.stackexchange.com/questions/59446/how-do-you-answer-rate-yourself-questions/59480#59480) – Mugen Aug 18 '11 at 10:21
0

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.

Olivier Pons
  • 377
  • 4
  • 11
0

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.

Joe
  • 481
  • 5
  • 12
0

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

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!

Malice
  • 129
  • 7
0

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.

Jas
  • 6,254
  • 1
  • 31
  • 46
0

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.

gekowa
  • 111
  • 3
0

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

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.

James P. Wright
  • 2,135
  • 4
  • 18
  • 25
  • `Humans are humans. Some of them suck, some of them don't.`. The problem is the percentage in each country, and each field. – Olivier Pons Nov 02 '11 at 09:32
-3

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

jsz
  • 111
  • 5