7 ms·
Behind the 'Bad Indian Coder'
- NAFV_P 13y agoand text like “Link will be sent to your mail for to update your Password.” sprinkled throughout public facing parts of the website, which just doesn’t give your customers the best impression of you and your business. Poor spelling and grammar only seems to be relevant when made by someone who is not writing in their first language.
- 300bps 13y agoI disagree. Poor spelling and grammar is an abomination in professional software if it is client facing. It doesn't matter in the slightest the background of the person who wrote it.
- wrongc0ntinent 13y agoI'd add to this that it's pretty evil in code too, just more insidious.
- NAFV_P 13y agoIn what respect, the identifiers or the keywords?
- wrongc0ntinent 13y agoKeywords wouldn't be a maintainer's problem, assuming the code works. Calling functions that are misspelled can get you into trouble fast though.
- NAFV_P 13y ago> I disagree. Poor spelling and grammar is an abomination in professional software if it is client facing. It is abominable, but I have seen poor spelling and grammar on software released by Toshiba, I haven't heard any complaints about it.
- smoyer 13y agoI too have experienced bad Indian coding ... as well as bad US coding, bad European coding, etc. I've experienced good coding from all those places too. I think the biggest issue with Indian coding is that it's predominately out-sourced and thus very hard to make sure the out-sourcing agency's business needs are aligned with your own.
- rhizome 13y agoReally, you think the biggest issue is that the project specs are always too vague?
- smoyer 13y agoYou can't write a specification that's completely unambiguous, combined with the fact that the agencies bill by the hour which creates an incentive for the agency (and their contractors) produce work products that meet the specification but that any logical programmer would avoid. This includes producing volumes of repetitive (and copied) code instead of careful refactoring, so not only does it cost more to get a functional product, but that product is far less maintainable.
- misterjangles 13y agoI believe as they say, 10 apprentices does not equal 1 master. When you work with any outsourcing company they have people of all skill working on the project. You will get their best masters at first, but at some point the "b" team will be brought in and you will start seeing bad code. I think this must be somewhat the nature of hiring contract workers because I have seen it again and again coming from all counties, as well as within the US.
- pallian 13y ago"I think the Indian education system as a whole is greatly flawed in that it does not urge students to think, but rather to memorize, or ‘mugging' as they say in India" - sadly, that one sentence pretty much sums up the Indian higher education system (from a guy who "mugged" his way to grade 12 before coming to North America and having to learn to think).
- dreamfactory 13y agoFor web at least, in some ways it's a cop out. All the developers I worked with are self-taught and in any case colleges in the West tend to be way behind industry practises.
- lmg643 13y agoEmployers are to blame. "Developers are all the same, find the cheapest ones." Never mind that it might take twice as long to get it right as paying the right person more for half the time. Not to say there isn't a place for low-price coders, but you don't have a right to complain if low cost was your primary objective. This is just one of many factors behind the startup explosion. The smartest hackers realize that finding an "employer" or "boss" exposes them to a variety of dysfunctions, such as working for a company that may prioritize employee cost over quality or output. And we can pretend that companies prioritizing employee cost over quality will eventually go out of business, and they might, but "eventually" can be 20-30 years if you keep your costs low enough.
- deleted 13y ago[deleted]
- tluyben2 13y agoI made a lot of teams in out sourcing countries for companies in the west and it's possible to get good quality from anywhere. The problem is that not much people (after al these years...) know how to guide and manage a team in Indian; it's just not the same as here. Most companies (I saw this recently at HP and Accenture for instance) think you can just chuck stuff over the fence to India and expect something back which works. You'll be lucky that way if it even compiles (it usually doesn't if the project is done by more than a few people)! I think the 'defense' in this article is weird though; as a humanitarian the circumstances feel bad; as a company owner; what do I care who goes to work in what way? If you deliver bad stuff you don't get work. The reason why is of no interest to me in this case as I personally cannot help fix it. Maybe I can, but at a cost equal or the same to hiring people who can sit next to me in my office and that was not really the idea now, was it? Actually ; the fact that everyone knows this already makes it even weirder that every big company is outsourcing the crown jewels to those countries. And then come back 'home' crying. It's just irresponsible towards the clients and local workers. That said; you can train mostly anyone and manage quality anywhere, but it's just harder than 'in the same office' until you have the process perfected. This means you going to India and spending a few years with your team establishing training ,education, process suited to your company. Companies work with people like me to set that up if they don't send people themselves. One of the worst things I see is companies who go once, meet the native guy they selected as boss there and then never go back (most work like that in my experience). It's just investment in people (and your company); it's not much cheaper (or at least much) than programmers locally if you want to do it well. But unfortunately everyone wants as cheap as possible.
- waps 13y agoThere's this ISP in Belgium, Telenet, that does this. I've never understood it. Their code is some java enterprise crap, and when helping out helpdeskers I've seen it and I've had the opportunity to see some of the code. It's easy to point out 10 obvious errors in each of their (horribly long) functions. The problem is that this infects all of their business processes. Even the quality of the code, which I'm sure costs them dozens of FTE-equivalents on an ongoing constant workarounds at least. There's also a constant workload for damage repair, whose costs probably go beyond merely the cost of the people doing it. The real big problem is the complete and total disconnect between the business and the development side. The impact of this goes from prioritization problems (spelling fixes get precedence over database corruption bugs), to month-long projects having to be redone multiple times. It also means that there is a massive disconnect between the business policy and what the system will actually do (legal frequently freaks out over it too. On one hand it lets some customers openly abuse the telco, and it often disconnects people for a payment deficit of EUR 0.01 that was caused by that very system). And of course, the business has to cope in the meantime. The government has assigned a "judge" (ombudsman, but with legal teeth) to do nothing other than override this system in ridiculous cases. Why the fuck do (large) companies accept this sort of shit ? I can understand a startups' "needs to work right fucking now" attitude with uncertain market fit, but hundreds of millions of revenue depend on this software ... Although this is partly why I've heard people leave Europe. In Europe, firstly, the money available to pay for a job is determined by "social order", not by value of the position. So a programmer makes $X (less than EUR 70k, and that's very, very well paid, and keep in mind minimum tax level is 56%). Even the one that when he makes a small mistakes crashes the entire network. If there's budget, they hire more programmers, not better ones. So you find 20-year old php monkeys doing those jobs, and constant outages. And second, sadly, this behavior is not at all limited to huge telcos. Baffles the mind.
- vezzy-fnord 13y agoI'm not all that familiar with Indian developers, but what I have noticed is the extremely high amount of Indian "security researchers" and [security] "hackers". I'm unsure as to why so many people there are attracted to information security, in particular. That wouldn't be bad, but the problem is that the majority have horrible, broken English, maintain blogs and even go as far as writing books with tons of plagiarized content and finally most of their writing is about entry-level script kiddie tricks or how to write Batch files/VBScript to open and close a CD tray in Windows. Anyone who has searched for "hacking tutorials/blogs/articles" and similar queries or who has an interest in infosec knows what I'm referring to. It seems as if many of them see security as some sort of toy field, or they're motivated by conflicts in their surrounding areas and are interested in cyberwarfare as an avenue to participate. The archetypal example of this is Ankit Fadia. In any event, it gets old and nauseating to look at these people. There are good Indian programmers and security researchers. But they're always the tiny exception. Maybe I'm biased, but it seems as though the ratio of unskilled IT workers to skilled and competent ones is much higher in India than anywhere else. Inputs?
- ChuckMcM 13y ago"Security Research" which can be a euphemism for hacking, has a built in reward metric and a low barrier to entry. It is also attractive to people who like to solve puzzles. If you are in a mass market being a "data base developer" at an job factory probably has very little positive feedback and peer recognition, but break the copy protection on a DVD so that you and your friends can all share a copy and you are a hero (lots of positive feedback). One community is self sustaining, the other isn't. So if you're self taught, spend most of your time cracking security systems, you are a 'security researcher' which is a slightly safer moniker than 'hacker' given the current political climate.
- dominotw 13y agoWhen I was growing up in india, Ankit Fadia became somewhat of a minor celebrity in India. I was not sure what he was doing or who he was but I believed he was some sort of a computer god. All the kids around me started reading his ethical hacker book. Maybe that has something to with lots of Indians wanting to be 'hackers' ?
- anuragramdasan 13y agoI've talked about this before[0], and I'll try again. I am an Indian developer. In my previous stint, I had to maintain PHP code. It was written by a Canadian developer. It was such a nightmare to maintain, I rewrote the code base entirely. I don't blame western developers for that. In fact the person had initially outsourced it to this particular developer because he thought western developers would write better code than Indian counterparts. Now I work full time for a SV based company. I still am in India. No one has complained about the code yet. So can we stop generalizing and blaming all Indians for this? There are some really good programmers in India who "care about perfecting recursions". [0]: https://news.ycombinator.com/item?id=6509220 https://news.ycombinator.com/item?id=6509220
- tluyben2 13y agoI talked about this many times before too (and here again), but Indian programmers get a bad name because the 'throw over the wall' factory line coder shops. Where 100s of coders have 1 m^2 each next to eachother; computer, headphones and working isolated by sitting like that all their working hours. No 'training' to speak off, no senior of quality helping them. And (big!) companies in the west just throw a spec over the wall and expect the result to work. This is just most of Indian outsourcing and the quality is a guaranteed drama.
- pavanred 13y agoI have seen many such threads show up on HN from time to time. I don't understand how anyone can arrive at any such bold conclusions based on anecdotal evidence. I am from India, I have spent some time in the out-sourcing industry. And, I think any generalization is never absolutely true. Like in any other country, there are good universities and bad universities in India, there are smart people and not so smart people, passionate people striving to always learn and do better and people just working to stay employed and get by. And, finally you always get what you pay for. There are out-sourcing companies in India that offer services at low cost ($/man-hours) and there are companies that offer services at higher costs, it's up to the customer to choose what they need. And, in my opinion since the entire model of out-sourcing is based on saving costs and by out-sourcing companies competing with each other, I bet there are more low cost services than higher ones (supply and demand).
- lake99 13y agoSmart interviewing helps filter-out bad engineers. I don't know the situation in other countries. At my work (India), 3 days of back-to-back interviews typically yield one or two employable engineers. And our code is on-par with code from other branches of our MNC, as evidenced by global reviews and testing. The upper management sees this and steady increases our head-count. It's as silly blaming "Indian" coders, as saying Indians are poor, don't eat cows, are Hindus, etc. We are a diverse lot. Perhaps more diverse than those in the west are used to, but that's how things are here. One systemic problem I see in most companies that I have worked for is that the companies get structured to promote even those with about 5 years of work experience into management positions. That certainly isn't enough time to develop deep competence in some of the complicated technical fields. That's been changing slowly in the last few years though.
- jakejake 13y agoIt sounds like you probably work at a quality company with high standards. It's unfortunate that there are companies who don't practice the same diligence, yet you get all stereotyped together as Indian coders. In the US I have a totally different impression of Indian coders which I happen to know is shared by more than just myself. That is the Indian coders I have known were extremely smart and particularly good with incredibly complex code. One of my friends who got hired at a place where the team was mostly Indian confessed to me that he was somewhat intimidated to start because the team was "all these genius Indian coders" and he wanted to be sure he would hold up to their standards. I hope that does not sound racist. I thought it might be interesting counterpoint that Indian programmers located here in the US do not have a negative "bad coder" image that I'm aware of - quite the opposite in fact. I know this is a stereotype just as it is to stereotype outsourcing. But, I think most US programmers negative opinion is not directed at the programmers themselves, but rather the logistics and various other challenges of outsourcing.
- lake99 13y agoI believe the word "racist" is used only with a negative connotation, so I don't think that applies to your comment. But some of your colleagues seem to have a positive prejudice towards Indians. I have had European colleagues express such a positive prejudice towards (a regional caste of) Indians, a couple of times. (I assume those with negative prejudices preferred to remain quiet.) I merely expressed my own opinion to the contrary, rather than argue hard to correct them. You are probably right about the logistics of outsourcing. I have not been involved in either end of such a transaction.
- eshvk 13y agoGood god, this is a stupid article. 1. The American programmers who stereotype an entire fucking country based on cheap shitty code bought from a stupid offshore center should be forced to take a statistics class. I have seen ten year old PHP code written by people who now work at one of the top three companies which makes me want to puke. I don't go around claiming that the top companies are bad or an entire race is bad. 2. The developer who got into a debate and started whining about societal issues is kind of lame. No one gives a fuck about whether you are in a wi-fi shuttle or what the competition is as long as you, the individual, can deliver code. 3. Meta discussions about the education system are hard to evaluate. One general trend is that more people go into the hard sciences in India than they do in the U.S. This means that a lot of potential barista servers are writing code. Ergo more crap. This doesn't necessarily mean that the education system needs reform or doesn't. It is what it is.
- pandaman 13y agoHere is how this discussion usually goes: Topic: "Soviet cars are crap" 1. "I am from the USSR and my fiance's uncle's neighbor drove his car for 500000 km without ever opening the hood!" 2. "I once had seen a BMW being towed, there are crap cars everywhere!" 3. "There are bad and good cars everywhere, it's racist to believe some countries are better or worse at making cars than the others."
- RBerenguel 13y agoChange cars for Scottish sheep and it sounds like a famous joke
- cperciva 13y agoChange cars for Scottish sheep and it sounds like at least one famous joke to at least one person.
- RBerenguel 13y agoHmmm I've seen this joke before in HN, so the at least one person is likely to... Whatever :)
- tcrorg 13y agoI am yet to meet a coder who likes to rework on a code written by another programmer. This is regardless of it being an India/Western programmer
- dman 13y agoYou have met me now. I find it fairly interesting to pick up pieces of code that other people have written. Often teaches me something new, gives me an insight into how the person thinks about solving problems. I think of it as pair programming separated in time and space.
- arcticf0x 13y agoBeing stuck in the education system myself, I fully agree that the system is flawed. But I think you get what you pay for, if you raise the buck it won't be difficult to find some excellent coders in India.
- auctiontheory 13y agoIf you are a white person who has grown up in the West, you cannot grok the extent to which in India (and many other countries) children follow an educational and career path that is ordained for them by family and society, rather than willingly chosen. In the US, programmers, doctors, etc. have historically chosen those specific professions as a match to their talents and interests. In India, programmers and doctors (and other professionals) are those who got the highest marks on some exam, completely irrespective of interest or specific talent. For a fortunate minority, there will be a talent/interest match by chance. The others make bad programmers.
- dominotw 13y agoThere are also safety nets in the west like social security, disability benefits that give you the courage to take chances and pursue your talents. In India you either become a software engineer or live in poverty.
- mgkimsal 13y agoI've worked with a handful of Indian developers who were great, and happened to be living in the US. Almost all Indian developers I've dealt (or had colleagues deal witH) with remotely (them living in India) were not good. Surely there's not something inherently genetic, as the people I worked with here in the US would be just as bad. The common trait I noticed with the 'bad' developers in India was a tendency to always say 'yes', almost in a servile manner. "These are the goals for the next week - can we hit those?" "Yes". "We need to incorporate some full text search, either with Solr or direct Lucene - do you have experience with either?" "Yes". "I need the login system to also do some logging and alerts based on the criteria I sent over yesterday. Was there anything in the email you have questions on?" "No". OK, in that last one, the answer was a 'no', but the 'yes' position - "Yes, I can do it, I know this, everything will be fine" got to be a bit baffling, because clearly after several days or weeks would go by and nothing would get done... asking "did you understand the specs from 2 weeks ago?" was met with a knee-jerk "yes", yet the understanding wasn't there. No doubt, I've encountered this with non Indian developers of all stripes and locations, but far less often. It feels like culturally there is a big emphasis on projecting an image that you know everything that needs to be known. I think that's common to many cultures/locations, and perhaps more common in software than other fields (?). But it's also easier to detect when you're face to face, even just on an infrequent basis. All that said, I did a code review of code from the Ukraine recently - it made me weep with joy (almost literally). It was a massive project, but it was some of the cleanest code I've seen in more than 15 years, and probably the cleanest code I've ever seen of that size that was not a large open source project. I was humbled at how good it was, and how disciplined that entire team was. One thing I learned about their operation is that they have regular communication daily, and one of the project managers gets over to Ukraine every so often for some face to face time. I can't say that's the key, but I bet it doesn't hurt. EDIT: Someone else mentioned specs being vague. This brings up another point I've noticed with offshore Indian developers moreso than others - a willingness to ask for clarifications. It ties in with my point above, I think, but is another angle. The Indian developers I worked with in the US seemed quite comfortable asking questions about specs/docs - the ones I've worked with who were based in India rarely asked questions about anything. Is this just cultural (living in the US tends to make you question things more?) or something else, or just my lone experiences and everyone else's is the opposite?
- j_baker 13y agoI think this has more to do with the types of companies that outsource to India. They're not doing it because they view India as a source of talented programmers. They're doing it because they view India as a large source of cheap, disposable butts in chairs. And guess what? You treat them that way, and that's what they become. I think the moral here is: seeking the best talent from across the world is a worthy goal, but seeking the absolute cheapest labor force possible leads to pain and suffering.
- bhups 13y agoThis is a hilariously stupid article. It makes sweeping generalizations of a country of a _billion_ people using nothing but anecdotal evidence. Really, if anyone is going to make a claim as bold as this, and as potentially insulting to a race of people as this, they better back it up with some numbers. This is very clearly a case of "you get what you pay for". If you want cheap labor, you're going to get cheap quality. Just like everywhere else, there exists good programmers and bad programmers, passionate people that strive to learn and get better and those that work just to get by.
- thruflo 13y agoSo, how do you find good Indian coders?
- dman 13y agoJust like you find good programmers anywhere else - involving your best programmers in hiring decisions, trying to tap into networks your programmers have, looking at people who have written non trivial open source projects ....
- icecreampain 13y agoMy only experience with indian coders is their listings on freelancing sites that bid very low. Far lower than would sustain a person in the west. 200$ to make a copy of Gmail. Stuff like that. My question to y'all is: why is it that I have not yet heard a "we hired indians to code x, and the code was really well done and documented"-comment from anyone yet? Is it because good indian / paki / nearby coders do not exist, or because they're hired, do the job well and nobody has a reason to mention their work to anyone else?
- NDizzle 13y agoOf course they can't compete against 26 year old Stanford grads. The problem at large, though, is that they also can't compete against someone like me - who is 34 and has an Arkansas High School education! (Which is not exactly something to brag about.)
- bad_coder 13y agoHey Hey Every One - Here I am to confess - Do you know how It feels like to the Bad Indian Coder and reading such articles every now and then? I am the Bad Indian Coder. I have made engineers at client company , literally smack their head due to frustration. Yes , I write bad code. I am sorry Mr. DHh,JDM,SPK, and many others. If you think why I do not want to learn the stuff which would make me perform well? Let me tell you how the system works. There are a set of outsourcing companies - let us call them the the {o1,o2,o3,o4,o5.....} There are a lot of companies in USA who want to outsource work to INDIA.{u1,u2,u3,u4,u5,.......} So , after a lot of negotiation based on skill set of labors ,labor costs,billing rates,legal agreement - A company from U chooses a company from O. WLOG, let's call them u and o. You know what , even before you see the bad code , the foundation has already been laid for bad experience - both for engineers at u and engineers at o. Why? You see the outsourcing companies o1,o2,o3,o4,o5 are run by very good , very talented , very ambitious people. For example: Narayan Murty , Ajeem Premji,Subroto Bagchi . These people pay themselves a lot. I mean a lot. Also , these people cannot commit to a branch. These CEO/Co Founders have their team of around 500 people who are quite bright as claimed by their academic backgrounds , have very good degree in their resume and these people are also paid a lot - I mean lots. What do these people do? They do the process I described above of finding some u company. Once the project starts , what does the company does? They hire developers(you can replace developers with testers,QA guys,coders,donkeys, - whatever pleases you) <<They actually do not hire , they have a pool of people on bench who are showed as the labor in the negotiation process>> The u company is charged something like ~20 dollars per hour per engineer working at the o company. Have you ever wondered how much the the developer/tester/qa guy/coder/engineer gets at the end? I understand that , since you are paying ~20 dollars per hour and 20 dollars/HOUR as per Indian Standards is a LOT . LOTS. But the end developer/engineer/tester/QA guy/coder gets NO MORE THAN 18 DOLLARS PER DAY. I get 10 DOLLARS PER DAY. The company o charges from the u company much much more than what my BODY EARNS for the o company. Where does the rest of money go ? It goes to pay the CEO and the team of sales and so called Strategy team.(AVP,VP,consultants -you name them - these are not billable people). All of these have one thing in common - They have very good degree on their resume.(Bachelor from Elite Indian School , then Masters/MBA from an elite University in USA). I do not have such a degree. I cannot leave job. No school in USA would accept me because a) I do not have an elite degree on my resume. b)If I write GRE exam (That GRE exam fee is half of my month's salary) I would not be able to take care of some people I care about. c)If you read b , then you might imagine I cannot afford any school without 100% scholarship. How my college went? Yes , Officially I did went to college for a computer science degree. But in my college 1)No lab sessions were held for 4 years. 2)The questions that would be asked in exam were like - what is an os , write a short note on file systems , why you need synchronization- The same set of questions were asked every year and every other year. We were given a set of question banks and asked to memorize the exact same answers. Little Did I know that memorization without understanding is cyanide for brain. Somehow after college ,after so much struggle I did end up at the job. Now in the current scenario- Why should I learn APIS for the code which is proprietary to the u company and train myself to become a ninja bug fixer for muti threaded applications? Why should I learn the debugger developed by the u company which would make me fast and make me deliver results on time? Why should I learn the language I do not like? Why should not I learn The things I like from moocs , which would make me get a real job. Yes, I write bad code, I do not care how much the client engineer rants about my code, or how much pain in the ass my code is for the u company. You , the u company never outsource the design/interesting/algorithm stuff for cheap . I know we would be terrible at that too , but at least we would learn some stuff. I am paid just 10 dollars per day.. I did not study in an elite college - which means that people who studied at elite college would use me as a whore to get richer . The Companies in outsourcing business are not run by entrepreneurs(even though they like themselves to be called as such) , the o companies are nothing put pimps. I am the whore. No , I am not depressed. Please stop blaming the labor , stop blaming the awful code. Please stop outsourcing all together. If you want to do outsourcing , please I beg you all the people who want to outsource , I beg you - PLEASE FIND HOW MUCH IS THE END DEVELOPER IS GETTING PAID. This is not a PART OF CONTRACT - The contract entails that the Company in USA will have no say on the salary of the Engineer in India - the company will just pay as hours. There has been a lot inflation in the last 10 years, thanks to the stupid Ghandhi - Manmohanh -2g scams, coal scams,. Prices have increased 3 times in 4 years of food items. But Wipro/Infosys/TCS Paid $330 per month then and now also pay the same . On every year , at end they give hikes of just 6%. But , please do that once. If I were getting 40 dollars per day , I would have worked hard , day and night and at least managed to deliver respectable code. But , I am not bothered about your deadlines , or your your escalations. I am not bothered as long as I am not getting money to buy at least one good thing for people I care about per month. It's almost the same system in all the u1,o1,u2,o2,u3,o3,u5,o5 companies.
- sai1511 13y agoThis is bad for many Indian developers, May be little down south of India can make a difference in quality of commitment and quality of code...! Much of North India, is known for cheating attitude...! Don't call me racist now...!
- known 13y agoGoogle "Companies ruined or almost ruined by Indians".