I can't help but notice the bias people from the west tend to have against Indian outsourcing companies. They have issues and downsides, sure. Major long term downsides, as an Indian programmer (not working for any of these companies), I agree (just like outsourcing to ANY company, be it American e.g. Cognizant).<p>Comments talking about Infosys/TCS, not being a brand: programmers are not Infosys' customers, in fact it's quite the opposite of that. Infosys' services replace programmers for their customers, who are non-technical managers who want to abstract the IT part of their projects and not be taken for a ride by technical people (not saying that all of them do, but a lot of times engineering department heads demand HUGE budgets to just become more important) and managers feel that a dependency like that makes it necessary for them to be obedient.<p>Just because they have downsides, does not mean that they are not brands. Infosys has innovation labs in universities all around the world. They award the Infosys prize to the tune of $6.5M to scientists for research. TCS is a strategic partner for projects like the British Rail Network.<p>I actually view Indian outsourcing firms to be firms that trade human hours, which turns out, are a lot cheaper in India. Maybe POTUS should actually impose duties on importing software too.<p>Update:<p>I also agree with fellow developers on the fact that these outsourcing cos. produce bad code and documentation and usually result in a net loss for organisations where technology is in inherent competitive advantage.<p>However, these downsides are not because of the lack of skill. It's because of the nature of project based model that outsourcing firms follow. If anyone is to blame, it's the myopic or misconstrued managers who employ them for projects where outsourcing is not the solution.<p>However, there are many applications where outsourcing firms do just fine. And hiring a separate engineering department could be a risky alternative.