Last night me and my partners welcomed VP of Engineering from US based company which is shifting their focus from India to high-quality European services with Expert Soft. We had a friendly dinner and shared his experience and thoughts why Indian outsource is the best foundation for high-quality services they provide in Texas and allover the US.
We spent last night discussing that negative experience he had with their Indian office, the need to fly their to somehow setup communication and how they take project from Infosys, which staff hundreds (!) engineers at $12/h rate to the client in US (can you imagine that?) – those engineers earn $3-5/h and it means they just can’t do anything.
He did meet couple great Indian guys, but statistically 2-3 out of 100-200 he worked with.
I’m thinking of creating a post in FB or LinkedIn about that. It will be something like this one. I just sorted key things out of this top-10 to share with you right now in the light of discussion we had last week.
BTW, we introduced the most cost-effective engineer to you (perfect balance of talent and rate), but we could consider giving you a Senior guy with great Hybris experience – I’ve just got one available for 4-6 hrs a day, so could be a great fit – we can introduce him to Andy next week.
1) Indian culture is very verbal – no proper documentation at the end.
They do not like to write things down. Of course it is impossible to fully stereotype 1.2 billion people, but many Indian people do not write much down. This leads you to constantly revisit the same issues. You might even get frustrated repeating the same thing again and again. Couple this with the time difference and right there you have a major challenge on your hands.
2) The time difference with the United States is the worst possible.
With about a 12 hour difference with MST (Mountain Standard Time) it is very difficult to find moments to speak in US. The situation is different in Europe, of course, but still not quite comfortable due to 5 hours shift.
3) The pyramid of salaries = inexperienced developers – as a consequence – very bad, poor-quality code and permanent breakdown of projects.
In India, a developer’s salary is limited. They must become project managers to make more money or even a manager of managers to make more money. The result is that you have a void of talent in the developer pool. You sometimes end up having very poor project managers that were very good developers. You sometimes find these Indian consulting firms with layers and layers of good managers while the quality of their developer pool is very low. Their best resources will be present during the sales process but when time comes to allocate resources for your project the talent pool will be very thin.
Ultimately the success of a software project will depend on the quality of the code produced. The result is that you will find it very difficult to find a talented developer older than 28. You will end up working with developers that have very little true business experience. The key to good software is having developers that can think abstractly in terms of framework and patterns; this thinking process takes years to develop. It is very hard to find even an Indian developer who can think that way.
Therefore, the code for Indian developers is often very substandard – violated best practices or misunderstanding of OOP concepts. This leads to permanent breakdowns in the project, it is impossible to qualitatively add new functions during the development of the project, because due to incorrect architecture and bad code, the essential elements of the project cease to work, etc. Such projects often fall during the Black Friday and other important high-loaded days.
I remember a real weird issue which corrupted orders during hot sales and no one could figure out quickly the reason. Architects spend hours debugging server configurations, but then it turned out that Indian guys incorrectly override equal () and hashcode () methods (which corrupts the contract between them) and later it turned out he didn’t know that rule and why it’s important.
4) They are disorganized and extremely difficult to motivate
If you have a sizable project, which will take months or more to develop, you might find that days become weeks and weeks become months with very little progress made.
Indian people seem to have few talent for hard-working while accomplishing little. I’m not certain exactly why this is, but many Indian developers seem content in what most here would consider a chaotic, stagnant project. This may be due to the fact that they are under 28 and barely comprehend the big picture of what is happening. They have no clue what the big picture goal is. It is not easy to be motivated when you do not really comprehend why you are doing something. You will have to constantly monitor/manage your project and quality to avoid having your project become another casualty.
5) “Yes” can have a different meaning.
Yes can have a different meaning in India than in the US. If you tell your Indian bricklayer, “we need to have this wall built by the end of the month” and your brick-layer replies “yes”. It does not mean “yes the wall will be built by the end of the month”. It might simply mean “yes I hear what you just said“. Some Indian people have a hard time saying “no”. Couple that with our different “sense of time” and you have a cultural gap that can lead to many missed deadlines.
6) They have a difficult time taking responsibility
This is sort of related to the previous point. You might assume that telling your bricklayer that he “should build that wall by the end of the month” and him acknowledging “yes it should be built by the end of the month” means he takes responsibility for this and will do everything possible to meet that deadline. But for him it means “yes it would be nice to have it done by then”. Come the end of the month if the wall is not finished he will not even think about it twice. To him he did not really “take responsibility” (in the Anglo sense of the term) for this deadline so he is not even aware of missing any deadline.
7) They are very good at “excuses”
This is a common problem all over the planet but I believe it is very developed in India. Culturally many Indians have evolved in a world where “excuses” (i.e. the facts of life from their perspective) were fine and had not adverse consequences. In other words, when productivity is very low, making excuses for missing issues have very little effect or even no effect on the already low output. So why sweat it? However when you are competing in a high productivity “race” that way of working is not acceptable and will lead to failure if not corrected.
Thank you and have a great day!