So, your company has commissioned a comprehensive, integrated software solution on the cloud. You don't have internal developers of your own, and so you have outsourced the development of your software to an offshore developer. For the sake of illustration, let's say you've outsourced to India. You initially selected India because offshore companies in India were cheaper than local options. Over time, however, you have noticed the challenges of developing your software offshore, such as time zones and long-distance communication.
Picture an ordinary working day, with morning meetings, lunch around midday, etc.. It's morning and you need to speak with your developers, problem is, 9am in Brisbane is 4.30am in India! If you and your Indian developer's business hours are 9am-5pm, then it's only between 1.30pm-5pm (your time) your trading hours overlap. Furthermore, your lunch periods are unaligned. These differences compound to make communication more difficult between you and your developer. For starters, you have less overall time during which your trading hours overlap. The situation is only worse for Sydney and Melbourne, which are ahead of Brisbane during Summer because of daylight saving time.
The real issue, however, is long-distance communication. As far as technology has come, nothing can replace face-to-face conversations. Video conferences, phone calls, and even emails serve a vital purpose, but none of these can replace face-to-face when that's what's needed. Of course, representatives can fly international, but this is slow and expensive. Sometimes the costs of international travel and/or reliance on less vivid mediums of communication are recouped by the lower labour rates overseas; however, these issues are exacerbated by language barriers.
Perhaps the developer's spokesperson will speak English at a native level, but will all of the programmers and designers? Times zones and long-distance communication exacerbate language barriers because more pressure is placed on intermediaries communicating for less time across less vivid mediums.
These issues collate around a central issue: developmental process. Historically, many businesses, including software developers, have adopted a waterfall model of business. In this model the flow of decisions and ideas is one way (top to bottom). Since the 1980s, however, more and more companies have begun adopting more agile and lean business organisation philosophies.
Scrum is a popular methodology of Agile-Lean. In Scrum, the flow of decisions and ideas is much more variable: developers speak with clients, programmers speak with designers, etc.. I.e. agility and adaptability is prioritised over centralisation and tradition. This style of workplace organisation is increasingly popular, as non-iterative methods of software development are susceptible to cost blowouts and missed deadlines as well as being less capable of innovation.
There are a number of challenges associated with an offshore software development company, such as time zones and long-distance communication. These issues are compounded by language barriers, and all three of these issues are further compounded by organisational methods. This is because innovative businesses are increasingly seeing the advantages of agile and lean philosophies, which are centered around principles of agility and adaptability, which can be hamstrung by the challenges of offshoring software development.
Software development is not one size fits all. Sometimes one way of doing things is suboptimal, and others times it's optimal. Offshorning has its advantages. However, like all businesses decisions, as there are potential upsides, there are potential downsides as well.