Bridging the development divide

Offshoring in software development can deliver many benefits to U.S.-based companies, from lower costs to better productivity. Offshoring also offers a viable means to rapidly fill technical skill and manpower gaps during periods of growth.

As offshore development salaries catch up with those on shore, companies are looking at offshoring software development and IT less for the cost savings and more for the increased productivity of teams working around the clock. This benefit is especially attractive now, given the move toward Agile and DevOps cultures where rapid releases and fixes bring a competitive edge.

The demand for close collaboration in modern software development, however, can make offshoring tough to manage due to the need for frequent and clear communications between team members. When groups are not co-located, it requires a thoughtful effort and even a cultural shift, to maintain effective collaboration. When different cultures, languages and time zones come to play, the challenge compounds.

There are, however, ways to overcome and even prevent offshoring glitches that can hinder the broader team’s goals:

  1. You still need face time. When creating a new team or adding an offshore group to your operations, there’s enormous value in bringing key members together in one location, even if for only a short period of time. This will help establish a fruitful working relationship for the long-term. For senior product managers and executives, it’s a worthy investment of time and money to travel to the offshoring location periodically to reestablish those interpersonal connections and gain ground-floor insight.
  1. Nail the requirements up front. Product managers should lead granular discussions early in the planning stage around project requirements and objectives. What may be clearly understood in your home country and language isn’t always the same with people from other countries. Spending extra time on communicating before work has commenced can prevent missed deadlines and incomplete or incorrect deliverables later. Getting everyone on the same page early on may also diffuse potential conflicts between the offshore and onshore team when issues arise.
  1. Use collaboration tools. Developers and testers who are co-located use tools like Slack, HipChat and Confluence to stay connected while they are working on the same project. Yet those tools, including code repository programs such as GitHub and Bitbucket, are critical on teams divided by oceans and many hours of time difference. A team member waking up to begin working while another has just gone to bed benefits greatly from visibility into changes from the previous hours, which these tools track and archive. Without easy-to-use collaboration and project management tools, offshore and onshore teams will have great difficulty sharing the needed information to keep workflow moving along.
  1. Use test driven development (TDD). In Agile and DevOps, TDD is effective to help developers and testers work side by side and release code faster. TDD streamlines processes by integrating testing into code-writing instead of as a last-mile activity, preventing costly and time-consuming test and fix cycles that delay releases. TDD is useful for offshore teams as well, since once the tests are written, developers can work at their own pace to complete deadlines without the need for real-time back and forth with testers who might work in another time zone.
  1. Negotiate differences in work culture. Westerners, and especially Americans, have an open communications style where banter and disagreement are accepted and encouraged. In other cultures, employees might not be as keen to ask questions, or challenge authority and traditional assumptions. Leaders on both offshore and onshore teams need to work teams together for occasional face time creates common ground. Finally, leaders can create incentives and measure performance based on team and project metrics, rather than individual contributions.
  1. Dividing duties. Companies may choose to locate an entire product team in the offshore location, to reduce friction. That improves communications and best supports Agile processes, even though the home office will still need to integrate the offshore team into the business at some level. Yet by not dividing a team between onshore and offshore sites, you lose the around-the-clock productivity benefit of offshoring. A company also loses the potential from a blended environment of two teams, which can infuse creativity and fresh ideas into product development. Distributed product teams often mean some duplicity of roles and effort; for instance, you’ll need two DevOps managers overseeing the big picture, one for each location. Such decisions around team structure may well tie back to customer needs or economics, in the end. Be sure to consider the implications of each structure on process, workflow and leadership.

Offshoring, though common in software, is never straightforward. The country of your choice brings its own unique requirements (such as local laws and taxes), as well as cultural and language considerations.

Companies embarking on a significant offshoring component will need to invest in proper research, planning and process/people integration to make the most of these partnerships.

Kevin Dunne is Vice President of Business Development & Strategy at QASymphony

Image Credit: ronstik / Shutterstock