Dynamics of task allocation in global software development. Issue 1 (18th October 2016) - Imtiaz, Salma; Ikram, Naveed
Abstract: Context: Global software development (GSD) promises high‐quality software at low cost. GSD enables around‐the‐clock development to achieve maximum production in a short period of time by using expertise around the globe. This development is only possible if tasks are effectively distributed among sites to ensure smooth development. Therefore, one of the key challenges of GSD is to design a task allocation strategy. Objective: The objective of this study is to identify various factors that influence task allocation decisions in GSD and to assess their relative importance. We also aim to determine the interrelationship between the factors along with role played by product architecture and communication and coordination needs during task allocation. Methods: We used multiple methods to collect data about the task allocation factors and process. A web‐based survey of 54 GSD practitioners from around the globe was conducted to identify the factors and their relative importance for task allocation decision. The selection of the sample was performed via the snowball sampling technique. To increase the sample size, the survey was also posted on social media, that is, Facebook, LinkedIn, and Twitter. Nonparametric statistical tests were applied on the response data to identify correlations and significance. Interviews were conducted from 11 project managers having 10 to 30 years GSD experience to gain insight into the dynamics of task allocation process. Results: The survey results highlight "expertise, " "site characteristics, " and "task site dependency" as the most important factors for a task allocation decision. The interview study has highlighted the importance of situation‐specific decision making during task allocation. The significance of factors varies with the characteristics of task, characteristics of organization, type of GSD, and objective of doing GSD. The culture and time differences between distributed sites have been assigned a low priority by the majority of the practitioners. The most common way of distributing task is functional area of expertise and phase‐based division, where detailed architecture is not considered. Interdependent modules are not allocated to distributed sites because of communication and coordination overhead. Our results also demonstrate a correlation between various factors and support Conway's law. Conclusions: We have interesting results in which certain factors are ranked differently from the prevalent views in the GSD literature. The survey results have also confirmed the application of Conway's law in practice for task allocation, where interdependent modules are not allocated to distributed sites. The significance of factors varies with characteristics of task, characteristics of organization, type of GSD, and objective of GSD, which require trade‐off between factors. The need of a well‐defined situation‐specific task allocation framework is evident from the results of survey and interview study. The outline of a task allocation framework for GSD is presented. Abstract : Task Allocation in Global Software Development is a critical activity and may result in the project failure if not performed properly. We have identified the factors necessary for an effective task allocation to distributed sites in the GSD projects, along with correlations among the factors. We have also determined variations to the GSD scenario, which determines the importance assigned to the factors. A task allocation framework is constructed, which will help in an effective task assignment by explicitly considering all of the important factors relevant to the given situation.