A majority of us have come in contact with software outsourcing in the last several years. Some of us have benefited from it whereas some have seen their jobs going off-shore. We may like or detest this phenomenon, but we should be in agreement that outsourcing is here to stay. Hence, we should all strive to understand it and try to benefit from it. And the first step is to look at the history.

The Start of Outsourcing

Back in late 80’s and early 90’s, when I was in India, we rarely talked about software outsourcing. In fact, the only thing we used to talk about was called ‘body shopping’ – where hoards of software professionals were sent to (mainly) US to work on client’s projects. Then came Y2K that took the body shopping to a new level. When the market collapsed in early 2000’s many of these professionals were sent back. This also coincided with a glut of broadband bandwidth across Atlantic – giving rise to cheaper and better telecommunications between the two countries. The CIO’s of US based companies noticed thousands of US trained software professionals (many of whom they themselves trained) willing to work at 1/10th of the US salary. The cash strapped CIO’s could not let go of this opportunity and started moving the software tasks to India. Thus started outsourcing.

Outsourcing Gathers Steam

Initially the maintenance and QA work was moved. As the confidence in Indian teams rose, small development tasks (the ones we used to lovingly call ‘grunt work’) were outsourced. There were hiccups for sure, but gradually the Indian teams started proving their worth. Around the same time the first effects of opening up of Indian economy were becoming visible. Doing business in India was getting (relatively) easier. The foreign companies were allowed to open offices in India without having an Indian partner. Many US companies took advantage of this opportunity and opened offices in India.

Then around 2003 something significant happened. The Indian teams started asking to be involved in complete software development life cycle. In short they wanted to build the entire products in India. Many of us in the US (myself included) came up with 1001 reasons why this would not be successful. To be honest many of the initial ‘projects’ failed. But the pressure to reduce cost was too much. The US companies also had invested too much in Indian teams. Gradually the Indian teams and the US management learned how to work with each other. Success was round the corner.

Everybody Wants to Outsource

Suddenly outsourcing became the silver bullet every CIO loved. They could simply move their software development operations to India, not have to deal with the demanding professionals in US, get the work done in 1/10th of the cost, and be called a hero. There was a rush to open offices in Bangalore, Chennai, Hyderabad, Pune, Mumbai, NOIDA, Gurgaon, etc. The companies planned to hire thousands of professionals every year for their Indian operations.

At the same time in India, there was a huge demand for software professionals. Everybody and his brother wanted to become a software professional. The Indian universities planned to produce more and more IT professionals every year. Many more private institutions started offering a degree in Computer Science or diplomas in various programing languages. India had a billion plus people and she was going to produce enough professionals to quench the thirst of the world for ‘cheap software development’.

Crash and Burn – Not Really

This was not to be. Not all the professionals are created equal. There is a huge difference in productivity of an average developer and a very good one. Many of these (private) institutes which were churning out programmers by thousands were nothing more than money making ventures. Since software industry was so lucrative, there was little incentive for a smart young graduate from a good university to enter academics. Sadly many of the graduates did not have right kind of knowledge or training.

This created a shortage of high quality software professionals – especially the experienced ones. The salaries of experienced software professionals sky-rocketed. It was not uncommon to get a raise of 20-50% every year. With the Indian economy booming, the real-estate costs in the so-called IT hubs went up many-folds. Gradually, the Indian cost advantage started disappearing.

However, the smart people who were running these ‘software shops’ understood the dynamics. They put in place a pyramid like team structure. The top of the pyramid would be an experienced professional and at the bottom would be fresh graduates. The middle would be filled with professionals with 1+ years of industry experience. The average cost of the team was thus kept in check.

Looking at the Future

Though there is no doubt that the outsourcing model has lot of potential, this does not work for everybody. We are, however, at a stage where the availability of quality professionals in not only India but also in other places in the world (Russia, Eastern Europe, China, Far East, and soon in Africa) would force us to find a paradigm that allows us to take advantage of their skills. At the same time I submit that the on-shore professionals have a huge part to play. I have been working on such a model that would accomplish this very goal and have been very successful so far. I will share that model with the community in a post in coming days.