Pages

Saturday, June 13, 2009

Tips for effective offshore software development


A decade of experience while working with distributed development environment has taught me some lessons and techniques to effectively work in this mode. In the following paragraphs, I have shared my observations and also, way to tackle common issues in distributed environment.


It is very important for onsite teams(read it as non-Indian outsourcing partner) to understand the culture of offshore teams (read it mostly as Indian teams). Specifically the cultures are extremely different in countries like India, china, Brazil, Manila as compared to the cultures in US, UK, or any other European countries.


Many a times the business people from onsite companies visit offshore, finalize the software vendor, sign the contract and return back. By this time, they would have already signalled setting up onsite and offshore software development teams. The onsite/offshore development teams start working on the software project even before they can properly spell each others names .


I have also observed the following differences in the way of working between onsite and offshore teams


Saying "No" : Offshore teams don't say "no" easily. They won't come up with issues easily as they don't want to hurt the other person. This is more of a cultural issues I think. I have come across many instances where offshore developers were fine getting the blame for not doing something even though the onsite teams have not provided them the sufficient information to proceed. Many a times in small and medium sized firms vendors give more than necessary due importance to the customers to keep them happy and are never blamed. This in turn adds significant fuel to fire in ensuring that the offshore developers keep quiet and nod their heads.

It is necessary for offshore teams to stand up and say "no" when necessary and at the same time , the onsite team leads should keep a tab on "bullying" developers.


Networking & Socializing : Many offshore developers when they come to work tend to socialize and would like to get the work done more informally rather than through formal means. Interestingly western culture is different. Since I used to live abroad, I have observed that the western developers don't want to be disturbed and clearly separate the personal from professional lives. They are very strict about the timings and whom they speak with during work. One of my relatives have been living and working for a fortune company since last 10 years in silicon valley. He says he has never spoken to the coworker who sits next to his cubicle, as the other person too does the same. Both of them come to work at 8 in the morning, eat meals while working, drink coffee while working and go home early in the evening. However in countries like India, having lunch together, cafe together is socially acceptable way of living .

I have observed that many onsite teams who are new to Indian culture don't consider this socializing aspect as cool and they get furious about "wasting productive hours".

It is extremely important to exchange key team members of both the teams for a few weeks so that they understand each others team. Knowing each others name is not sufficient.


Technology and Communication: Somehow western programmers come with inherent ability to communicate effectively as compared to the offshore programmers. So, offshore vendors always spend extra effort to correct this weakness by pushing the senior and more experienced programmers to the front line to manage projects. So, it is difficult to find "programmers" with 10-15 years of experience in offshore teams, however you can easily find "managers". So, don't expect people at 10+ years sit and code as compared to the onsite counterparts. The subject of whether experienced offshore developers should code or not itself is a debatable subject, but let me keep it for another day :-)

6 comments:

Jeff Whiteside said...

I couldn't agree more that understanding and appreciating culture is critical. Also, exchanging team members can not be under emphasized. The act of breaking bread (and drinking vodka in my case since my team is in Belarus), is the easiest way to create a relationship built on trust.

Project Management Software said...

Project management includes various tasks that you and your team need to employ to achieve a goal. Proper project management systems are vital for any project. It is very difficult to manage the whole team without any commanding tools. To resolve this problem web based project management software has been introduced by many companies, as the goal is to increase the efficiency and cost-effectiveness.

Justin Wolf said...

It’s hard to find knowledgeable people on this topic, but you sound like you know what you’re talking about! Thanks

Shoun Devid said...

It's really difficult to manage, but their are some sort of ways to create engagement. By encourage both in-house and offshore team to respect each others way of working. Understand that holidays fall on different days. Adjust and plan for them in advance. A break from routine activities would enable everyone to come back to work with a fresh mind and enthusiasm.

Providing regular vacations to employees is best way to get productivity.

Regards,
Offshore web Development Services

Clarke Chandler said...

Another tips is Complex project management experience. When selecting an offshore software development company, ensure that they have extensive experience in complex project management.

Robert Cristofer said...

"Western programmers come with inherent ability to communicate effectively as compared to the offshore programmers" I do not agree with this statement, because I know with the professionals as well as the other side. I would say that, offshore software development itself already requires a different approach and we often confuse it with just software development. It is my oppinion.