1) The number one reason has to be the large well educated population in India.
2) The highest number of English speaking people.
3) The Indian culture itself is a huge contributor. For e.g: Parent’s commitment to children’s education. The importance of education is ingrained by them on their children at a very young age. They see good education as the only means to have better standard of living.
4) As much as Indian IT Industry has grown due to offshoring, equal amount of credit should go to growth of domestic companies in Auto, retail, banking, telecommunication, manufacturing etc. They have equally contributed in its growth .
5) The young and dynamic working population. More than 60%; of Indian people are below age 25 !
6) The rapid growth in IT parks in India in last 10 years. Government setup SEZs (specialized economic zones), where opening of software services companies would get certain tax subsidies. This attracted lot of companies to setup software shops.
7) The tax breaks and shops offered by Indian government for upcoming software firms. This made India one of the most attractive markets for setting up Software shop.
8) The commitment of Indians towards their work. It is a common knowledge that people in Software Industry normally put more than 10 hours a day in their work. I do not subscribe to the view that working long hours necessarily leads to higher productivity, but I think this “hard working Indians” definitely plays on people’s mind.
9) Rapid growth in Infrastructure and transportation facilities that started in mid nineties. Yes, we still have to go a long way yet, but we are moving in right direction.
10) The entrepreneurial spirit and Innovative tilt of Indians. This may be controversial, however I think it is a factor that has made Infosys and Wipro such huge success stories !
11) The time difference is one of the reasons for growth of Indian IT Industry. Western countries get advantage of having a 24 hour work cycle.
If I have missed some, drop in a comment and I will add them here.