Saturday, March 27, 2010

On Perceptions of Indian Developers in the West

In response to Ram's blog Perceptions of Indian Developers in the West

On comparing the capabilities of developers, here is a typical experience.

We took over a significant but small piece of software couple of years ago.  It was written by one person in C, way back in late 1980s.  Let's call him Adam.  Adam had used an environment that was available then.  He had no version control and no documentation.  It had been backed up on another server.  That was the only version available outside of Adam's machine.

Though the organization was particular about software development standards, this one was left as is - for fear of breaking anything or antagonizing Adam or both.  It was a program that was closely guarded, possibly not out of any insecurity, but just circumstances.  It was using Adam's own data structures, could have been rewritten to make use of databases and other libraries.  But not done, for no one saw value in redoing it.

Adam got old, old enough to retire, but his service was extended year after year for three years.  At some point the top management gathered strength to take a decision, decided to let him go and prepared for the transition.

We had a smart developer take over this piece of code.  Let's call him Amit.  He had just about 2 years of experience.  If you were to compare the two developers, they would fit in the perfect stereotypes that you see in the media - one western nerd and the other Indian developer who wears flashy clothes and speaks with Hindi accent.

The surprise was, it went just fine.  Offshore development brings in certain constraints that helps in better management of the software development process.  We spent the first 3-4 weeks trying to compile the code in a virgin environment.  For the first time, the program was compiled on a machine different from Adam's machine.  The dependencies on tools and interdependencies on libraries were identified and documented.  During this period, Adam had his share of stereotypical fun at Amit.  Once Amit could compile it successfully, his confidence grew.  He also set it up on a version control system at client's site.

In the next month, as Adam retired, Amit was confident enough to train another developer.  The two developers worked directly with the other stakeholders, removing the need for a project manager's mediation.  In couple of months, the two developers got total control of the system, handled Level 2 and 3 of production support.  Everyone could forget Adam.  

Indian developers are just as good as any other developers.  The benefit western developers get is, by staying with a problem long enough.  That gives them the confidence about the domain and technology.  On the other hand, Indian developers move from project to project, not spending the same amount of time.  It also gives them better exposure.  I met seasoned architects at a client's place who were not aware on desktop sharing tools over the web or open source reporting tools.

It is unfair to brand one as good and others bad.  A famous Tamil movie dialog goes - "அரிவாள் நாங்க வெட்டினாலும் வெட்டும்.  துப்பாக்கி நாங்க சுட்டாலும் சுடும்".    Applies in technology as well.

No comments: