Tools used in Global Software Engineering: A systematic mapping review

Context: This systematic mapping review is set in a Global Software Engineering (GSE) context, characterized by a highly distributed environment in which project team members work separately in different countries. This geographic separation creates specific challenges associated with global communication, coordination and control. Objective: The main goal of this study is to discover all the available communication and coordination tools that can support highly distributed teams, how these tools have been applied in GSE, and then to describe and classify the tools to allow both practitioners and researchers involved in GSE to make use of the available tool support in GSE. Method: We performed a systematic mapping review through a search for studies that answered our research question, ''Which software tools (commercial, free or research based) are available to support Global Software Engineering?'' Applying a range of related search terms to key electronic databases, selected journals, and conferences and workshops enabled us to extract relevant papers. We then used a data extraction template to classify, extract and record important information about the GSD tools from each paper. This information was synthesized and presented as a general map of types of GSD tools, the tool's main features and how each tool was validated in practice. Results: The main result is a list of 132 tools, which, according to the literature, have been, or are intended to be, used in global software projects. The classification of these tools includes lists of features for communication, coordination and control as well as how the tool has been validated in practice. We found that out the total of 132, the majority of tools were developed at research centers, and only a small percentage of tools (18.9%) are reported as having been tested outside the initial context in which they were developed. Conclusion: The most common features in the GSE tools included in this study are: team activity and social awareness, support for informal communication, Support for Distributed Knowledge Management and Interoperability with other tools. Finally, there is the need for an evaluation of these tools to verify their external validity, or usefulness in a wider global environment.

[1]  Christopher Oezbek,et al.  Saros: an eclipse plug-in for distributed party programming , 2010, CHASE '10.

[2]  Norbert Seyff,et al.  Enhancing GSS-based requirements negotiation with distributed and mobile tools , 2005, 14th IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborative Enterprise (WETICE'05).

[3]  Bernd Brügge,et al.  IBistro: a learning environment for knowledge construction in distributed software engineering courses , 2002, Ninth Asia-Pacific Software Engineering Conference, 2002..

[4]  Eleni Stroulia,et al.  WikiDev 2.0: discovering clusters of related team artifacts , 2009, CASCON.

[5]  Jesús Favela,et al.  An Experience in Collaborative Software Engineering Education , 2001, IEEE Softw..

[6]  Filippo Lanubile,et al.  Embedding social networking information into jazz to foster group awareness within distributed teams , 2009, SoSEA '09.

[7]  Clinton L. Jeffery,et al.  SCI: Towards a Social Collaborative Integrated Development Environment , 2009, 2009 International Conference on Computational Science and Engineering.

[8]  Anita Sarma,et al.  Tesseract: Interactive visual exploration of socio-technical relationships in software development , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[9]  Charles P. Shelton,et al.  CAMEL: A Tool for Collaborative Distributed Software Design , 2009, 2009 Fourth IEEE International Conference on Global Software Engineering.

[10]  T.C. Lethbridge,et al.  Guide to the Software Engineering Body of Knowledge (SWEBOK) and the Software Engineering Education Knowledge (SEEK) - a preliminary mapping , 2001, 10th International Workshop on Software Technology and Engineering Practice.

[11]  Vahid Garousi,et al.  IssuePlayer: An extensible framework for visual assessment of issue management in software development projects , 2010, J. Vis. Lang. Comput..

[12]  Aurora Vizcaíno,et al.  Collaboration Tools for Global Software Engineering , 2010, IEEE Software.

[13]  Charles Hill,et al.  Beyond predictable workflows: Enhancing productivity in artful business processes , 2006, IBM Syst. J..

[14]  Katsuro Inoue,et al.  MUDABlue: an automatic categorization system for open source repositories , 2004, 11th Asia-Pacific Software Engineering Conference.

[15]  Fabio Q. B. da Silva,et al.  Challenges and solutions in distributed software development project management: A systematic literature review , 2010, 2010 5th IEEE International Conference on Global Software Engineering.

[16]  Andreas Rausch,et al.  4everedit - Team-based Process Documentation Management , 2006, Softw. Process. Improv. Pract..

[17]  N. Boulila,et al.  Group support for distributed collaborative concurrent software modeling , 2004 .

[18]  André van der Hoek,et al.  Continuous coordination within the context of cooperative and human aspects of software engineering , 2008, CHASE.

[19]  Amar Gupta,et al.  24-hour knowledge factory: Using Internet technology to leverage spatial and temporal separations , 2007, TOIT.

[20]  T. V. V. Krishnamurthy,et al.  Ailments of Distributed Document Reviews and Remedies of DOCTOR (DOCument Tree ORganizer Tool) with Distributed Reviews Support , 2008, 2008 IEEE International Conference on Global Software Engineering.

[21]  Muhammad Ali-Babar The application of knowledge-sharing workspace paradigm for software architecture processes , 2008, SHARK '08.

[22]  Audris Mockus,et al.  Distance, dependencies, and delay in a global collaboration , 2000, CSCW '00.

[23]  Steve Riddle,et al.  Risk Management for Web and Distributed Software Development Projects , 2010, 2010 Fifth International Conference on Internet Monitoring and Protection.

[24]  Bikram Sengupta,et al.  Enabling Collaboration in Distributed Requirements Management , 2006, IEEE Software.

[25]  Pierluigi Ritrovato,et al.  Managing coordination and cooperation in distributed software processes: the GENESIS environment , 2004, Softw. Process. Improv. Pract..

[26]  Pär J. Ågerfalk,et al.  Benefits of Global Software Development: The Known and Unknown , 2008, ICSP.

[27]  Redge Bartholomew,et al.  Evaluating a Networked Virtual Environment for Globally Distributed Avionics Software Development , 2008, 2008 IEEE International Conference on Global Software Engineering.

[28]  André van der Hoek,et al.  CASI: preventing indirect conflicts through a live visualization , 2010, CHASE '10.

[29]  Benedikt Lutz,et al.  Linguistic Challenges in Global Software Development: Lessons Learned in an International SW Development Division , 2009, 2009 Fourth IEEE International Conference on Global Software Engineering.

[30]  J. William Ahwood,et al.  CLASSIFICATION , 1931, Foundations of Familiar Language.

[31]  Rafael Prikladnicki,et al.  Improving Contextual Skills in Global Software Engineering: A Corporate Training Experience , 2008, 2008 IEEE International Conference on Global Software Engineering.

[32]  Hye-Young Paik,et al.  Using Scrum in Global Software Development: A Systematic Literature Review , 2009, 2009 Fourth IEEE International Conference on Global Software Engineering.

[33]  Muhammad Ali Babar,et al.  Introducing Tool Support for Managing Architectural Knowledge: An Experience Report , 2008, 15th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ecbs 2008).

[34]  Atsuo Hazeyama,et al.  Distributed Collaborative Modeling Support System Associating UML Diagrams with Chat Messages , 2009, 2009 33rd Annual IEEE International Computer Software and Applications Conference.

[35]  Kevin Dullemond,et al.  Technological support for distributed agile development , 2009 .

[36]  M. Rita Thissen,et al.  Communication tools for distributed software development teams , 2007, SIGMIS CPR '07.

[37]  Bernd Brügge,et al.  Sysiphus: Enabling informal collaboration in global software development , 2006, 2006 IEEE International Conference on Global Software Engineering (ICGSE'06).

[38]  Judith S. Donath,et al.  Share: a programming environment for loosely bound cooperation , 2010, CHI.

[39]  Michele Lanza,et al.  Syde: a tool for collaborative software development , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[40]  Stefan Biffl,et al.  Evaluating Tools that Support Pair Programming in a Distributed Engineering Environment , 2010, EASE.

[41]  Daniela E. Damian,et al.  Instructional design and assessment strategies for teaching global software development: a framework , 2006, ICSE.

[42]  Claes Wohlin,et al.  Agile Practices in Global Software Engineering - A Systematic Map , 2010, 2010 5th IEEE International Conference on Global Software Engineering.

[43]  Santonu Sarkar,et al.  A collaborative platform for application knowledge management in software maintenance projects , 2008, Bangalore Compute Conf..

[44]  Bernd Brügge,et al.  Supporting Distributed Software Development with fine-grained Artefact Management , 2006, 2006 IEEE International Conference on Global Software Engineering (ICGSE'06).

[45]  Jürgen Münch,et al.  Guided support for collaborative modeling, enactment and simulation of software development processes , 2004, Softw. Process. Improv. Pract..

[46]  Kai Petersen,et al.  Systematic Mapping Studies in Software Engineering , 2008, EASE.

[47]  Andreas Schreiber,et al.  RepoGuard: A Framework for Integration of Development Tools with Source Code Repositories , 2009, 2009 Fourth IEEE International Conference on Global Software Engineering.

[48]  F. George Wilkie,et al.  Evaluating UML tool support for effective coordination and communication across geographically disparate sites , 2004, 12 International Workshop on Software Technology and Engineering Practice (STEP'04).

[49]  Daniela E. Damian,et al.  Essential communication practices for Extreme Programming in a global software development team , 2006, Inf. Softw. Technol..

[50]  Bikram Sengupta,et al.  A research agenda for distributed software development , 2006, ICSE.

[51]  Rini van Solingen,et al.  Tool Support for Distributed Software Engineering , 2006, 2006 IEEE International Conference on Global Software Engineering (ICGSE'06).

[52]  Bertrand Meyer Design and code reviews in the age of the internet , 2008, CACM.

[53]  Mexhid Ferati,et al.  Assessing the effectiveness of distributed pair programming for an online informatics curriculum , 2010, INROADS.

[54]  Franz Rothlauf,et al.  Offshore Software Development: Transferring Research Findings into the Classroom , 2007, SEAFOOD.

[55]  Mary Czerwinski,et al.  FASTDash: a visual dashboard for fostering awareness in software teams , 2007, CHI.

[56]  Erran Carmel,et al.  Global software teams: collaborating across borders and time zones , 1999 .

[57]  Paul Dourish,et al.  Unifying artifacts and activities in a visual tool for distributed software development teams , 2004, Proceedings. 26th International Conference on Software Engineering.

[58]  Steven R. Haynes,et al.  Collaborative architecture design and evaluation , 2006, DIS '06.

[59]  Volker Wulf,et al.  Knowledge Management in Distributed Software Development Teams - Does Culture Matter? , 2009, 2009 Fourth IEEE International Conference on Global Software Engineering.

[60]  Tony Gorschek,et al.  Empirical evidence in global software engineering: a systematic review , 2010, Empirical Software Engineering.

[61]  Dragutin Petkovic,et al.  Assessment and comparison of local and global SW engineering practices in a classroom setting , 2008, SIGCSE 2008.

[62]  Alfonso Fuggetta,et al.  A classification of CASE technology , 1993, Computer.