Monday, September 2, 2019

Communication in Distributed Agile Development: A Case Study :: Technology, Software Development

Distributed software development (DSD)1 is becoming a common practice in modern software industry [e.g. 1], where the level of distribution can range from team members being located in the same city to those on different continents [2]. The significance of DSD has accelerated because of factors such as improving timetomarket through constant development across different timezones, quick formation of virtual teams and the benefits of business market advantages. These needs have driven the software development efforts further towards a multisite globally distributed environment. [1] Simultaneously, several studies have concluded that distributed enterprises are risky [e.g. 35]. For example, communication and coordination, software quality, schedule overruns and exceeded costs are some of the problems troubling both singlesite and distributed software projects. However, the extent of the problem in the case of DSD seems to be so complex that a thorough understanding of it has not yet been defined. [3, 4] Several studies agree that communication is a particularly important issue in distributed agile development, [e.g. 57]. Agile methods rely on volatile requirements that are managed through efficient verbal communication [8] and thus agile software development methods pose their own challenges to the field of DSD. In order to tackle the problems of DSD, several different techniques have been proposed. These techniques range from using different tools, such as instant messaging [9], videoconferencing [10] and whiteboard software [5] to a set of more general recommendations [5]. We conducted two different case studies with different levels of distribution ranging from the customer being in the same city, to one with a geographical distribution of 600 kilometers within the same country. Therefore, cultural differences were not an issue in these cases. We compared our findings against the recommendations of Layman et al. [5] and provide more insight on their application based on our empirical findings and the existing literature. Even though we were able to evaluate only three recommendations out of the existing four, our contribution provides valuable insight into conducting distributed agile projects. Our results further emphasize the critical role of effective communication, indicating that inefficient and irregular communication in conjunction with volatile requirements can cause severe problems even in very smallscale agile projects. However, it seems that effective communication is not the key. Our cases suggest that having a welldefined customer2 is the key recommendation affecting to recommendations about having a Development Manager [5] and using asynchronous communication channels. As ineffective customer collaboration may render the other recommendations redundant, effective customer collaboration seems to be a key factor for successful distributed agile development. In addition, we complement the existing recommendations by introducing an additional recommendation: i.e. enable and support direct communication between the developers. Unexpectedly, the teams in the second case were not allowed to communicate directly with each other. To compensate, a managementled communication channel was established to balance the communication flow,

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.