It's getting better, but most of the code I see from TCS in our code base is not very good. However I see lots of crappy code from all over the world so.
Main problem is that the best developers don't go to TCS or we just don't see them.
TCS (and the other similar companies) have plenty of very good developers, but many of their clients are only willing to pay for the cheapest available, technically qualified, body in a seat, so that's what they get.
However, if you're willing to pay for the quality (or you're a new client that they're trying to impress), you'll see some excellent people working for them.
The main problem is the best developers go the highest bidders which are often not Indian companies. Amazon, Google, Microsoft these are the ones offering big bucks in India.
But they won't be able to hire anything more than a few tens of people every year.
With several thousands of engineers coming out of colleges every years. Without mass hiring firms like Wipro, Infosys and TCS we are screwed. Its a fact nobody likes to admit.
Its also a myth that these companies don't have good work, I worked for one of them. If you are genuinely passionate, you can do far better work than what is portrayed.
And as I said, without these employers like these we would all be screwed.
Heck, without them doing all the work in the 80's and 90's we wouldn't probably even stand a chance now.
I personally saw a completely different reason for this, it wasn't that the best developers didn't work for TCS or that the best developers worked for the highest bidders.
For all the years we had TCS developers working with the team, our developers stayed as developers and improved. Yet with TCS the status symbol there was to be a manager. We had a lot of churn over the years as the more experienced developers became with TCS, they stopped development and moved into a more "prestigious" role as a manager and stopped coding.
Main problem is that the best developers don't go to TCS or we just don't see them.