Nowadays many organization using offshore partners to complement their U.S.-based development team but here communication is a major factor of success or failure for any software project In offshore software development OSD, communication is more critical than collocated software development. Frequent communication is not always possible due to challenges like time zone differences, holiday customs etc. where client and vendor working hours do not overlap. This communication problem affects the success of offshoring decision in terms of cost, schedule, time-to-market, client-vendor trust, and customer and business satisfaction. For successful software project offshoring, successful communication is necessary. This paper provides a preliminary exploration of communication mode/mediums and challenges involved in OSD.
A classification is presented for offshore software development activities and the communication modes/mediums used to perform those activities. A hypothetical framework has also been proposed on the basis of this classification.
offshore team communication and development infrastructure
My first checkpoint would be an ability of an offshore team to communicate seamlessly with their onshore colleagues. It is important to test offshore team email pings, video conferences, IM conversations.
- Ability of offshore teams to work without any infrastructure interruptions like slow bandwidth, unreliable network, adequate tools, servers, desktops etc.
- Go for a trial before you start on a project. If you experience any issues during trial, these will be magnified greatly during development. If these are inadequate, demand an upgrade and/or additional systems. Fix them before you dive into project
- If you have good infrastructure then offshore team will not be slowed down due to issues not under their direct control. Even you staff with best developers, if you don’t provide right technical environment, they would not succeed.
- In a recent audit, I saw onshore team complaining that their team in India is very slow. It was shocking to see offshore SVN commits were taking nearly 45 minutes and they were working on outdated desktops, because of which their local build was taking couple of hours. Team lost their momentum due these issues.
- Face to face discussion -f the offshore team is small bring the entire team onshore for some up-front project activities such as establishing the shared project vision, requirements elicitation, initial planning and execution of initial 2-3 sprints. If the team is big and budget is limited, then have key members of the team onsite.
- Additionally, plan travel of onsite teams to offshore location and spending few sprints together.
- Both teams should discuss issues and should come to an understanding of how to work together on this project. Facilitating a Norming and Chartering session and team agreeing on this lays right foundation.
- Asking teams to travel is a big investment of money and time. This is not just a meeting, define collocation goals and closely track it. Teams should spend outside office time together to build informal relations.
Smooth work process
Establishing continuous integration approach with good test coverage is a must. Good CI will ensure teams getting successful green build when they start their day.This will reduce work loss or productivity loss due to one team committing bad code and next team unable to use that code base.
- Have common email list between teams, and teams can drop couple of lines end of day on any changes that the other team should be aware of. Also sometimes if you are facing issues, sending an email to common list or on IM group is wise. You can sometimes get support from other team not just in common office hours, but also during outside of office hours too.
Synchronize your working hours
- Plan an hour of overlap at least between local and remote teams. Use this one hour for synchronization and information flow between teams.Plan your joint team activities like pair programming, reviews, joint meetings, distributed stand-up etc during this overlap.
- Asking the remote team to work odd hours and having the local team work normal hours simply will not work. It sends the wrong signal that the local team is more important. Additionally, the offshore team will come to dislike Agile Methods and will naturally under perform. I see this as a manifestation of the thinking that remote teams are just resources and not people.
- Even in extreme situations like 12-hour delta between teams, local and remote team can alternatively extend their day to get sufficient overlap.
- Different countries, cities and some organizations have different working hours. For example, in few cities/organizations in India people come to work between 8-9AM and in few cities office work starts at 10-11AM and extends late. Depending upon where your remote team is located, mutually identify those overlapping hours.
- Key factor is effective communication for all organization . The ways to minimize cross-site communication and coordination needs are: the application of modularity and information hiding principles in software architecture design and outsourcing those tasks which require low user interaction and low-skills.
For more information about our ODC IT Services, please drop an email to firstname.lastname@example.org