Following process vs good developers for outsourced projects

I came across this post on the most common reasons why outsourced development fails . For me inexperienced developers are a common reason why outsourced projects fail.

There are lots of reasons why you should or should not outsource that is a different topic altogether and is highly dependent on the type of project .

While I am not an expert in outsourced projects I have some experience on both sides of outsourcing and here are my thoughts .

I spend most of these days between building our online brain training website , mobile apps and consulting for Genares which is now taken over by Sabre . From late 1999 to 2006 I worked for a few different services companies that do outsourcing software development work from bangalore and in 2006 I moved to the US and worked there till 2012 . I have had the opportunity to blame both the onsite and offshore teams :-) .

The first point mentioned in the article is “ Processes are core to a good engineering team. It’s plain and simple: if a company lacks processes, they lack quality development, akin to a manufacturing outfit wherein without processes, you’d never be able to get a quality product developed “ . If you have ever worked for a services company that do software development then you know that process is one of their main selling point . I have had the unpleasant experience of going through ISO and CMM certifications , the main point of these certifications is to define some sort of processes . There is a process defined for everything you do, you start spending most of your time following these processes rather than what is required by the client .

One of the main reasons why outsourcing fails is due to inexperienced developers . Now before you jump in to share your horrible experience on dealing with Indian software developers . There are definitely a lot of talented developers here (Google, Microsoft , Adobe and a lot of other companies have development centers in India) and your company can definitely save money by outsourcing . Most companies do not understand the business model of the Major Indian services companies . If you have had a chance to work in a service company here in India, the teams mostly consist of a few good developers and a majority of them are mediocre , the service company pays fresh college grads around $6000 per year and charge around $20–25 per hour for each resource in the project so the larger the inexperienced and lower paying members they have in the project the more profits they make .

One way to avoid this is to make sure you choose quality people on the team , I have seen many managers conduct interviews for each member of the outsourced team, this is a very painful and slow process but I think this is easier than just trusting companies to do the hiring.

Coming to the other side which does not get talked about much is that there is resistance from onsite developers to outsourcing . I have seen horrible monolithic code bases without tests that the developers have been working on from the beginning and expect the outsourced developers to start being productive as soon as they start working on it. Also being near the business folks the onsite developers have a lot of additional domain knowledge which the offsite developers will not have access to.

If you were to choose between good experienced developers no defined process Vs mediocre developers with a defined process what would you choose ?