Topic > Communication in distributed agile development: a case...

Distributed software development (DSD)1 is becoming a common practice in the modern software industry [e.g. 1], where the level of distribution can vary from team members who are located in the same city to those on different continents [2]. The importance of DSD has increased due to factors such as improving time to market through constant development across multiple time zones, rapid formation of virtual teams, and the benefits of enterprise market advantages. These needs have further pushed software development efforts towards a globally distributed multisite environment. [1] At the same time, several studies have concluded that distributed businesses are risky [e.g. 35]. For example, communication and coordination, software quality, schedule and cost overruns are some of the issues that plague both distributed and single-site software projects. However, the scope of the problem in the case of DSD appears to be so complex that a thorough understanding of it has not yet been established. [3, 4] Several studies agree that communication is a particularly important issue in distributed agile development, [e.g. 57]. Agile methods are based on volatile requirements that are managed through efficient verbal communication [8] and therefore agile software development methods pose their own challenges in the field of distributed agile development. DSD. To address DSD problems, several techniques have been proposed. These techniques range from the use of different tools, such as instant messaging [9], video conferencing [10] and whiteboard software [5] to a series of more general recommendations [5]. We conducted two different case studies with different levels of distribution ranging from the customer located in the same city, to one with geographical distribution of 600 kilometers within the same country. Therefore, cultural differences were not an issue in these cases. We compared our results with the recommendations of Layman et al. [5] and provide more insights into their application based on our empirical results and existing literature. Although we were only able to evaluate three of the existing four recommendations, our contribution provides valuable insights into conducting distributed agile projects. Our findings further highlight the critical role of effective communication, indicating that inefficient and erratic communication, coupled with volatile requirements, can cause serious problems even in very small-scale agile projects. However, it appears that effective communication is not the key. Our cases suggest that having a well-defined customer2 is the key recommendation that influences recommendations on having a development manager[5] and using asynchronous communication channels. Since ineffective customer collaboration can make other recommendations redundant, effective customer collaboration appears to be a key factor for successful distributed agile development. Furthermore, we complement the existing recommendations by introducing an additional recommendation: that is, enable and support direct communication between developers. Unexpectedly, in the second case, the teams were not allowed to communicate directly with each other. To compensate, a management-led communication channel was established to balance the communication flow,