Some anecdotes from Bad Indian Programmers at a larger Indian outsouring company:
When implementing a touch version of a website (to be hosted on touch.example.com) one programmer copied the entire project, changed the relevant views/templates and deployed it, effectively creating a new, separate codebase. This was never checked into version control anywhere, I discovered it when I was looking into some unrelated issues with the server.
One programmer was struggling with an image being "corrupted" after being uploaded to a server. He struggled with this for hours, attempting to upload the image in different formats and zipping/extracting the image with no luck before asking for help. When trying to access the image on the webserver the server responded with a 401. After pointing out that this was an issue with permissions, the programmer resolved the issue by running the command "sudo chmod 777 -Rf logo.png". ("chmod 655 logo.png" would have sufficed.)
Needing to get the number of models in a backbone collection, one programmer placed a script-tag inside a javascript template used by backbone. This was one line of jQuery which counted the number of elements in the element used by the backbone view. The number of elements was then stored as elements in the DOM, adjacent to the elements in the template. So when backbone rendered a collection with N models, the javascript in the template would run N time times, storing the number of models in N different elements. The number of models in the collection were then fetched using jQuery and the :last-child selector. This whole mess was replaced by a simple call to collection.fetch().
I've got dozen of experiences like this (although these are the most memorable), and I'd like to reiterate that these programmers worked at a larger Indian company who specialized in outsourcing. It's what I think of when I hear about "Bad Indian Programmers".
>"Could it be it wasn't 'those Indian guys' who caused your project to fail?"
The project could have failed with good programmers. Bad Indian Programmers virtually guarantee it.
>"Everybody else's code sucks."
There is bad code, and then there is really, really, really bad god-awful code which no amount of "change in requirements" or "failure of communication" can explain. It really is terrifying how much technical debt can be incurred by Bad Indian Programmers.
>"Stop having crazy expectations."
I don't think anyone hires $20/hr programmers and expect $200/hr quality work. The expect some value to be created. Instead, Bad Indian Programmers create negative value when the work they do is worthless and has to be done over (often by a more expensive programmer).
When implementing a touch version of a website (to be hosted on touch.example.com) one programmer copied the entire project, changed the relevant views/templates and deployed it, effectively creating a new, separate codebase. This was never checked into version control anywhere, I discovered it when I was looking into some unrelated issues with the server.
One programmer was struggling with an image being "corrupted" after being uploaded to a server. He struggled with this for hours, attempting to upload the image in different formats and zipping/extracting the image with no luck before asking for help. When trying to access the image on the webserver the server responded with a 401. After pointing out that this was an issue with permissions, the programmer resolved the issue by running the command "sudo chmod 777 -Rf logo.png". ("chmod 655 logo.png" would have sufficed.)
Needing to get the number of models in a backbone collection, one programmer placed a script-tag inside a javascript template used by backbone. This was one line of jQuery which counted the number of elements in the element used by the backbone view. The number of elements was then stored as elements in the DOM, adjacent to the elements in the template. So when backbone rendered a collection with N models, the javascript in the template would run N time times, storing the number of models in N different elements. The number of models in the collection were then fetched using jQuery and the :last-child selector. This whole mess was replaced by a simple call to collection.fetch().
I've got dozen of experiences like this (although these are the most memorable), and I'd like to reiterate that these programmers worked at a larger Indian company who specialized in outsourcing. It's what I think of when I hear about "Bad Indian Programmers".
>"Could it be it wasn't 'those Indian guys' who caused your project to fail?"
The project could have failed with good programmers. Bad Indian Programmers virtually guarantee it.
>"Everybody else's code sucks."
There is bad code, and then there is really, really, really bad god-awful code which no amount of "change in requirements" or "failure of communication" can explain. It really is terrifying how much technical debt can be incurred by Bad Indian Programmers.
>"Stop having crazy expectations."
I don't think anyone hires $20/hr programmers and expect $200/hr quality work. The expect some value to be created. Instead, Bad Indian Programmers create negative value when the work they do is worthless and has to be done over (often by a more expensive programmer).