Distributed development considered harmful?

We offer a case study illustrating three rules for reporting research to industrial practitioners. Firstly, report “relevant” results; e.g. this paper explores the effects of distributed development on software products. Second: “recheck” old results if new results call them into question. Many papers say distributed development can be harmful to software quality. Previous work by Bird et al. allayed that concern but a recent paper by Posnett et al. suggests that the Bird result was biased by the kinds of files it explored. Hence, this paper rechecks that result and finds significant differences in Microsoft products (Office 2010) between software built by distributed or collocated teams. At first glance, this recheck calls into question the widespread practice of distributed development. Our third rule is to “reflect” on results to avoid confusing practitioners with an arcane mathematical analysis. For example, on reflection, we found that the effect size of the differences seen in the collocated and distributed software was so small that it need not concern industrial practitioners. Our conclusion is that at least for Microsoft products, distributed development is not considered harmful.

[1]  Tore Dybå,et al.  A systematic review of statistical power in software engineering experiments , 2006, Inf. Softw. Technol..

[2]  Audris Mockus,et al.  Expertise Browser: a quantitative approach to identifying expertise , 2002, Proceedings of the 24th International Conference on Software Engineering. ICSE 2002.

[3]  Tore Dybå,et al.  A systematic review of effect size in software engineering experiments , 2007, Inf. Softw. Technol..

[4]  Rajesh Krishna Balan,et al.  Towards governance schemes for distributed software development projects , 2008, SDG '08.

[5]  Mark S. Ackerman,et al.  Expertise recommender: a flexible recommendation system and architecture , 2000, CSCW '00.

[6]  James D. Herbsleb,et al.  Global Software Engineering: The Future of Socio-technical Coordination , 2007, Future of Software Engineering (FOSE '07).

[7]  Laurie A. Williams,et al.  Secure open source collaboration: an empirical study of linus' law , 2009, CCS.

[8]  J. Alberto Espinosa,et al.  Learning from Experience in Software Development: A Multilevel Analysis , 2007, Manag. Sci..

[9]  Victor R. Basili,et al.  The influence of organizational structure on software quality , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[10]  Erran Carmel,et al.  Tactical Approaches for Alleviating Distance in Global Software Development , 2001, IEEE Softw..

[11]  Pär J. Ågerfalk,et al.  Global Software Development Challenges: A Case Study on Temporal, Geographical and Socio-Cultural Distance , 2006, 2006 IEEE International Conference on Global Software Engineering (ICGSE'06).

[12]  Harald C. Gall,et al.  Don't touch my code!: examining the effects of ownership on software quality , 2011, ESEC/FSE '11.

[13]  Harvey P. Siy,et al.  Predicting Fault Incidence Using Software Change History , 2000, IEEE Trans. Software Eng..

[14]  Premkumar T. Devanbu,et al.  Ownership, experience and defects: a fine-grained study of authorship , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[15]  V. Basili Software modeling and measurement: the Goal/Question/Metric paradigm , 1992 .

[16]  Christian Bird,et al.  Who? Where? What? Examining distributed development in two large open source projects , 2012, 2012 9th IEEE Working Conference on Mining Software Repositories (MSR).

[17]  Päivi Parviainen,et al.  Philips experiences in global distributed software development , 2007, Empirical Software Engineering.

[18]  Audris Mockus,et al.  Predicting risk of software changes , 2000, Bell Labs Technical Journal.

[19]  Premkumar T. Devanbu,et al.  Ecological inference in empirical software engineering , 2011, 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011).

[20]  James D. Herbsleb,et al.  Identification of coordination requirements: implications for the Design of collaboration and awareness tools , 2006, CSCW '06.

[21]  Elaine J. Weyuker,et al.  Do too many cooks spoil the broth? Using the number of developers to enhance defect prediction models , 2008, Empirical Software Engineering.

[22]  Shari Lawrence Pfleeger,et al.  Preliminary Guidelines for Empirical Research in Software Engineering , 2002, IEEE Trans. Software Eng..

[23]  Jeff Sutherland,et al.  Distributed Scrum: Agile Project Management with Outsourced Development Teams , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[24]  James J. Cusick,et al.  A Practical Management and Engineering Approach to Offshore Collaboration , 2006, IEEE Software.

[25]  Miryung Kim,et al.  Validity concerns in software engineering research , 2010, FoSER '10.

[26]  Peng Xu,et al.  Can distributed software development be agile? , 2006, CACM.

[27]  Audris Mockus,et al.  An Empirical Study of Speed and Communication in Globally Distributed Software Development , 2003, IEEE Trans. Software Eng..

[28]  Diomidis Spinellis Global software development in the freeBSD project , 2006, GSD '06.

[29]  Rajesh Krishna Balan,et al.  Globally distributed software development project performance: an empirical analysis , 2008, ISEC '08.

[30]  Brendan Murphy,et al.  Can developer-module networks predict failures? , 2008, SIGSOFT '08/FSE-16.

[31]  Harald C. Gall,et al.  Does distributed development affect software quality? An empirical case study of Windows Vista , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[32]  K. Subramanian,et al.  Leveraging Resources in Global Software Development , 2001, IEEE Softw..

[33]  Adam A. Porter,et al.  Empirical studies of software engineering: a roadmap , 2000, ICSE '00.