Challenges and Recommendations for the Design and Conduct of Global Software Engineering Courses: A Systematic Review

Context: Global Software Engineering (GSE) has become the predominant form of software development for global companies and has given rise to a demand for students trained in GSE. In response, universities are developing courses and curricula around GSE and researchers have begun to disseminate studies of these new approaches. Problem: GSE differs from most other computer science fields, however, in that practice is inseparable from theory. As a result, educators looking to create GSE courses face a daunting task: integrating global practice into the local classroom. Aim: This study aims to ameliorate the very difficult task of teaching GSE by delineating the challenges and providing some recommendations for overcoming them. Method: To meet our aims we pose two research questions ("When teaching GSE to students in Higher Education, what are the (a) challenges, and (b) recommendations for addressing them") and then conduct a systematic literature review (SLR) to determine the answers to these questions. Our SLR follows a carefully designed and validated protocol. Results: We found 82 papers that addressed our research questions. Our findings indicate that in addition to the challenges posed by GSE in general, particular problems arise in educational situations. The majority of these challenges fall into the "global distance" category, though teamwork challenges and people issues (such as trust) also commonly arise. Organizational differences between institutions, differing skill sets between students in different locations, and varying cultural work norms, for example, all operate within educational settings in quite different ways than in professional development teams. Integrating cultural training, conducting teamwork exercises to build trust, and instructor monitoring of team communication are all examples of techniques that have been used successfully by educators according to our review Conclusion: Despite the severity of the challenges in GSE education, many institutions have successfully developed courses and curricula targeting GSE. Indeed, for each of the challenges we have identified in the literature there are numerous recommendations for overcoming them. Instructors can use the recommendations given in this study as a starting point to running successful GSE courses.

[1]  Thanwadee Sunetnanta,et al.  A Global and Competition-Based Model for Fostering Technical and Soft Skills in Software Engineering Education , 2009, 2009 22nd Conference on Software Engineering Education and Training.

[2]  Adam Steele,et al.  Developing a pedagogical infrastructure for teaching globally distributed software development , 2011, CTGDSD '11.

[3]  Kathleen M. Swigger,et al.  The role of leadership and its effect on the temporal patterns of global software development teams , 2012, 8th International Conference on Collaborative Computing: Networking, Applications and Worksharing (CollaborateCom).

[4]  Ita Richardson,et al.  Who Are We Doing Global Software Engineering Research For? , 2013, 2013 IEEE 8th International Conference on Global Software Engineering.

[5]  Sirkka L. Jarvenpaa,et al.  Communication and Trust in Global Virtual Teams , 1999 .

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

[7]  Junhua Ding A framework for global collaboration in teaching software engineering , 2013, 2013 3rd International Workshop on Collaborative Teaching of Globally Distributed Software Development (CTGDSD).

[8]  Bernd Brügge,et al.  Transatlantic project courses in a university environment , 2000, Proceedings Seventh Asia-Pacific Software Engeering Conference. APSEC 2000.

[9]  Ivica Crnkovic,et al.  Student motivation in distributed software development projects , 2011, CTGDSD '11.

[10]  William L. Honig,et al.  A classroom outsourcing experience for software engineering learning , 2007, ITiCSE '07.

[11]  Adam Steele,et al.  Simulating Global Software Development in a Course Environment , 2010, 2010 5th IEEE International Conference on Global Software Engineering.

[12]  Kathleen M. Swigger,et al.  Teaching Students How to Work in Global Software Development Environments , 2006, 2006 International Conference on Collaborative Computing: Networking, Applications and Worksharing.

[13]  Ivica Crnkovic,et al.  Distributed Software Development course: Students' and teachers' perspectives , 2012, 2012 Second International Workshop on Collaborative Teaching of Globally Distributed Software Development (CTGDSD).

[14]  Henry Muccini,et al.  An empirical study of learning by osmosis in global software engineering , 2012, J. Softw. Evol. Process..

[15]  Kathleen M. Swigger,et al.  A Comparison of Team Performance Measures for Global Software Development Student Teams , 2009, 2009 Fourth IEEE International Conference on Global Software Engineering.

[16]  Myriam Herrera,et al.  Applying a distributed CSCL activity for teaching software architecture , 2011, International Conference on Information Society (i-Society 2011).

[17]  Detlef Schoder,et al.  Teaching a global project course: experiences and lessons learned , 2011, CTGDSD '11.

[18]  Ferda Nur Alpaslan,et al.  The Challenges of Teaching Students How to Work in Global Software Teams , 2010, 2010 IEEE Transforming Engineering Education: Creating Interdisciplinary Skills for Complex Global Environments.

[19]  Fergal McCaffery,et al.  A Process Framework for Global Software Engineering Teams , 2012, Inf. Softw. Technol..

[20]  Bertrand Meyer,et al.  How Do Distribution and Time Zones Affect Software Development? A Case Study on Communication , 2011, 2011 IEEE Sixth International Conference on Global Software Engineering.

[21]  Paul M. Leidig,et al.  Resources for instructors of capstone courses in computing , 2001, ACM SIGCSE Bull..

[22]  Ita Richardson,et al.  Making Software Engineering Research Relevant , 2014, Computer.

[23]  Helen Sharp,et al.  Protocol for a Systematic Literature Review of Motivation in Software Engineering , 2006 .

[24]  Mario Zagar,et al.  Picking the right project: Assigning student teams in a GSD course , 2013, 2013 26th International Conference on Software Engineering Education and Training (CSEE&T).

[25]  Sergio F. Ochoa,et al.  Supporting Instructional Software Engineering Activities Using CODILA: Some Latin American Experiences , 2011 .

[26]  M. Daniels,et al.  RUNESTONE, an international student collaboration project , 1998, FIE '98. 28th Annual Frontiers in Education Conference. Moving from 'Teacher-Centered' to 'Learner-Centered' Education. Conference Proceedings (Cat. No.98CH36214).

[27]  Bertrand Meyer,et al.  Teaching software engineering using globally distributed projects: the DOSE course , 2011, CTGDSD '11.

[28]  Paul M. Leidig,et al.  Resources for instructors of capstone courses in computing , 2001, ITiCSE-WGR '01.

[29]  Kathleen M. Swigger,et al.  When do distributed student teams work? , 2012, 2012 International Conference on Information Technology Based Higher Education and Training (ITHET).

[30]  Eleni Stroulia,et al.  Teaching distributed software engineering with UCOSP: the undergraduate capstone open-source project , 2011, CTGDSD '11.

[31]  Mario Piattini,et al.  Providing Training in GSD by Using a Virtual Environment , 2012, PROFES.

[32]  D. Pauleen Leadership in a global virtual team: an action learning approach , 2003 .

[33]  Ita Richardson,et al.  Assessing the Strength of Global Teaming Practices: A Pilot Study , 2015, 2015 IEEE 10th International Conference on Global Software Engineering.

[34]  Mario Piattini,et al.  Developing the Skills Needed for Requirement Elicitation in Global Software Development , 2008, ICEIS.

[35]  Ivica Crnkovic,et al.  Ten tips to succeed in Global Software Engineering education , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[36]  Olly Gotel,et al.  Mixing continents, competences and roles: Five years of lessons for software engineering education , 2012, IET Softw..

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

[38]  Ita Richardson,et al.  Global software development and collaboration: barriers and solutions , 2010, INROADS.

[39]  Zhang Rui,et al.  Teaching Globally Distributed Software Development: An Experience Report , 2012, 2012 IEEE 25th Conference on Software Engineering Education and Training.

[40]  Muhammad Ali Babar,et al.  Global software engineering: Identifying challenges is important and providing solutions is even better , 2014, Inf. Softw. Technol..

[41]  Valentine Casey,et al.  Imparting the importance of culture to global software development , 2010, INROADS.

[42]  John Noll,et al.  Can Automated Text Classification Improve Content Analysis of Software Project Data? , 2013, 2013 ACM / IEEE International Symposium on Empirical Software Engineering and Measurement.

[43]  Swapnanjan Chatterjee,et al.  Distributed software development: Experience and recommendation , 2013, 2013 3rd International Workshop on Collaborative Teaching of Globally Distributed Software Development (CTGDSD).

[44]  Hongwei Zhu,et al.  Global Software Development Project , 2012, AMCIS.

[45]  M. Last Understanding the group development process in global software teams , 2003, 33rd Annual Frontiers in Education, 2003. FIE 2003..

[46]  John Noll,et al.  A Qualitative Method for Mining Open Source Software Repositories , 2012, OSS.

[47]  Nour Ali,et al.  Architectural Knowledge Management in Global Software Development: A Review , 2010, 2010 5th IEEE International Conference on Global Software Engineering.

[48]  Klaus Krippendorff,et al.  Content Analysis: An Introduction to Its Methodology , 1980 .

[49]  Ita Richardson,et al.  Globalizing Software Development in the Local Classroom , 2007, 20th Conference on Software Engineering Education & Training (CSEET'07).

[50]  Ivica Crnkovic,et al.  Avoiding scylla and charybdis in distributed software development course , 2011, CTGDSD '11.

[51]  Bertrand Meyer,et al.  An experiment on teaching coordination in a globally distributed software engineering class , 2014, 2014 IEEE 27th Conference on Software Engineering Education and Training (CSEE&T).

[52]  Mario Piattini,et al.  VENTURE: Towards a framework for simulating GSD in educational environments , 2011, 2011 FIFTH INTERNATIONAL CONFERENCE ON RESEARCH CHALLENGES IN INFORMATION SCIENCE.

[53]  C. Scharff,et al.  Preparing Computer Science Students for Global Software Development , 2006, Proceedings. Frontiers in Education. 36th Annual Conference.

[54]  Moshe Y. Vardi,et al.  Globalization and offshoring of software : a report of the ACM Job Migration Task Force , 2006 .

[55]  Arnold Pears,et al.  Engineering Education Research in Practice: Evolving Use of Open Ended Group Projects as a Pedagogical Strategy for Developing Skills in Global Collaboration* , 2010 .

[56]  Raffaela Mirandola,et al.  Multi-dimensional assessment of risks in a distributed software development course , 2013, 2013 3rd International Workshop on Collaborative Teaching of Globally Distributed Software Development (CTGDSD).

[57]  Eduardo Santana de Almeida,et al.  Five years of lessons learned from the Software Engineering course: Adapting best practices for Distributed Software Development , 2012, 2012 Second International Workshop on Collaborative Teaching of Globally Distributed Software Development (CTGDSD).

[58]  Arnold Pears,et al.  Developing global teamwork skills: The Runestone project , 2010, IEEE EDUCON 2010 Conference.

[59]  Claes Wohlin,et al.  Global software engineering and agile practices: a systematic review , 2012, J. Softw. Evol. Process..

[60]  Ivica Crnkovic,et al.  Customers' Role in Teaching Distributed Software Development , 2010, 2010 23rd IEEE Conference on Software Engineering Education and Training.

[61]  Rini van Solingen,et al.  Evaluating the Effectiveness of Board Game Usage to Teach GSE Dynamics , 2011, 2011 IEEE Sixth International Conference on Global Software Engineering.

[62]  Miguel J. Monasor,et al.  Cultural and linguistic problems in GSD: a simulator to train engineers in these issues , 2012, J. Softw. Evol. Process..

[63]  Ivica Crnkovic,et al.  Ten tips to succeed in global software engineering education: What do the students say? , 2013, 2013 3rd International Workshop on Collaborative Teaching of Globally Distributed Software Development (CTGDSD).

[64]  Feniosky Peña-Mora,et al.  Supporting a Project-Based, Collaborative, Distance Learning Lab , 2000 .

[65]  Florian Matthes,et al.  Teaching Global Software Engineering and International Project Management - Experiences and Lessons Learned from Four Academic Projects , 2011, CSEDU.

[66]  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..

[67]  Mario Piattini,et al.  Assessment process for a simulation-based training environment in global software development , 2014, ITiCSE '14.

[68]  Tony Clear Replicating an 'Onshore' Capstone Computing Project in a 'Farshore' Setting -- An Experience Report , 2011, 2011 IEEE Sixth International Conference on Global Software Engineering.

[69]  Mario Piattini,et al.  Preparing Students and Engineers for Global Software Development: A Systematic Review , 2010, 2010 5th IEEE International Conference on Global Software Engineering.

[70]  Fabian Fagerholm,et al.  A platform for teaching applied distributed software development: The ongoing journey of the Helsinki software factory , 2013, 2013 3rd International Workshop on Collaborative Teaching of Globally Distributed Software Development (CTGDSD).

[71]  Daniela E. Damian,et al.  Teaching students global software engineering skills using distributed Scrum , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[72]  Juha Taina,et al.  Distributed Cross-Cultural Student Software Project: A Case Study , 2005, 18th Conference on Software Engineering Education & Training (CSEET'05).

[73]  Niki Panteli,et al.  Trust and temporary virtual teams: alternative explanations and dramaturgical relationships , 2004, Inf. Technol. People.

[74]  Tony Clear,et al.  Cooperative and Work-Integrated Education in Information Technology , 2011 .

[75]  Waqar Hussain,et al.  Preparing the Global Software Engineer , 2015, 2015 IEEE 10th International Conference on Global Software Engineering.

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

[77]  D. Schoen Educating the reflective practitioner , 1987 .

[78]  Tony Clear,et al.  Using groupware for international collaborative learning , 2000, 30th Annual Frontiers in Education Conference. Building on A Century of Progress in Engineering Education. Conference Proceedings (IEEE Cat. No.00CH37135).

[79]  Olly Gotel,et al.  Students as Partners and Students as Mentors: An Educational Model for Quality Assurance in Global Software Development , 2008, SEAFOOD.

[80]  Thanwadee Sunetnanta,et al.  Quality Indicators on Global Software Development Projects: Does "Getting to Know You" Really Matter? , 2009, 2009 Fourth IEEE International Conference on Global Software Engineering.

[81]  Ferda Nur Alpaslan,et al.  Strategies and guidelines for building effective distributed learning teams in higher education , 2010, 2010 9th International Conference on Information Technology Based Higher Education and Training (ITHET).

[82]  Patricia Brockmann,et al.  A virtual, global classroom to teach global software engineering: A Mongolian-German team-teaching project , 2013, 2013 Second International Conference on E-Learning and E-Technologies in Education (ICEEE).

[83]  Arthur M. Farley,et al.  Intensive international Summer Schools in Global Distributed Software Development , 2012, 2012 Frontiers in Education Conference Proceedings.

[84]  Denise M. Woit,et al.  Student communication challenges in distributed software engineering environments , 2005, ITiCSE '05.

[85]  Mario Piattini,et al.  Teaching Requirements Elicitation within the Context of Global Software Development , 2009, 2009 Mexican International Conference on Computer Science.

[86]  Tony Clear,et al.  A course in collaborative computing: collaborative learning and research with a global perspective , 2008, SIGCSE '08.

[87]  K. Krippendorff Krippendorff, Klaus, Content Analysis: An Introduction to its Methodology . Beverly Hills, CA: Sage, 1980. , 1980 .

[88]  Ita Richardson,et al.  Crafting a Global Teaming Model for Architectural Knowledge , 2010, 2010 5th IEEE International Conference on Global Software Engineering.

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

[90]  Bertrand Meyer,et al.  Software Engineering in the Academy , 2001, Computer.

[91]  Allen E. Milewski,et al.  Distributed development: an education perspective on the global studio project , 2006, ICSE '06.

[92]  Pär J. Ågerfalk,et al.  Global software development , 2009, Commun. ACM.

[93]  Stefanie Betz,et al.  On educating globally distributed software development — A case study , 2009, 2009 24th International Symposium on Computer and Information Sciences.

[94]  E. Boyer Scholarship Reconsidered: Priorities of the Professoriate , 1990 .

[95]  Kathleen M. Swigger,et al.  A case study of student software teams using computer-supported software , 2005, Proceedings of the 2005 International Symposium on Collaborative Technologies and Systems, 2005..

[96]  Thomas C. Reeves,et al.  Patterns of engagement in authentic online learning environments , 2003, ASCILITE.

[97]  Henry Muccini,et al.  Developing a Course on Designing Software in Globally Distributed Teams , 2008, 2008 IEEE International Conference on Global Software Engineering.

[98]  D. Petkovic,et al.  Teaching Practical Software Engineering and Global Software Engineering: Case Study and Recommendations , 2006, Proceedings. Frontiers in Education. 36th Annual Conference.

[99]  Mats Daniels,et al.  A learning theory perspective on running open ended group projects (OEGPs) , 2008, ACE '08.

[100]  Julian M. Bass,et al.  The learner experience of student-led international group project work in software engineering , 2014, 2014 IEEE Frontiers in Education Conference (FIE) Proceedings.

[101]  Tony Clear,et al.  Collaborative technologies in global engineering: new competencies and challenges , 2015 .

[102]  Brian Lee,et al.  A System to Support Teaching Global Software Development , 2012 .

[103]  Tony Clear Exploring the notion of 'cultural fit' in global virtual collaborations , 2011, INROADS.

[104]  Bertrand Meyer,et al.  Advanced hands-on training for distributed and outsourced software engineering , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[105]  John Noll,et al.  GSD Sim: A Global Software Development Game , 2014, 2014 IEEE International Conference on Global Software Engineeering Workshops.

[106]  Osama Shata A Crash Undergraduate Course in Global Software Engineering , 2011, 2011 12th ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing.

[107]  Lorilee R. Sandmann,et al.  Conceptualization of the Scholarship of Engagement in Higher Education: A Strategic Review, 1996-2006 , 2008 .

[108]  E. Doerry,et al.  Virtual student exchange: lessons learned in virtual international teaming in interdisciplinary design education , 2004, Information Technology Based Proceedings of the FIfth International Conference onHigher Education and Training, 2004. ITHET 2004..

[109]  Felix B. Tan,et al.  Online Consumer Trust: A Multi-Dimensional Model , 2004, J. Electron. Commer. Organ..

[110]  Anders Berglund,et al.  Reflections on International Projects in Undergraduate CS Education , 1999, Comput. Sci. Educ..

[111]  Tony Clear Systematic literature reviews and undergraduate research , 2012, INROADS.

[112]  Rudy Hirschheim,et al.  Some Guidelines for the Critical Reviewing of Conceptual Papers , 2008, J. Assoc. Inf. Syst..

[113]  Stephen G. MacDonell,et al.  Research in Global Software Engineering: A Systematic Snapshot , 2013, ENASE.

[114]  Thanwadee Sunetnanta,et al.  Quality Indicators on Global Software Development Projects: Does "Getting to Know You" Really Matter? , 2009, ICGSE.

[115]  David W. Valentine CS educational research: a meta-analysis of SIGCSE technical symposium proceedings , 2004 .

[116]  Biwu Yang,et al.  Teaching software engineering with Global Understanding , 2012, 2012 Second International Workshop on Collaborative Teaching of Globally Distributed Software Development (CTGDSD).

[117]  Henry Muccini,et al.  Towards a European Master Programme on Global Software Engineering , 2007, 20th Conference on Software Engineering Education & Training (CSEET'07).

[118]  Bernhard Rumpe,et al.  GloSE-Lab: Teaching Global Software Engineering , 2011, 2011 IEEE Sixth International Conference on Global Software Engineering.

[119]  Sabrina Marczak,et al.  Towards a GSE international teaching network: Mapping Global Software Engineering courses , 2012, 2012 Second International Workshop on Collaborative Teaching of Globally Distributed Software Development (CTGDSD).

[120]  M. Hettinga,et al.  Understanding evolutionary use of groupware , 2002 .

[121]  Yang Li,et al.  Teaching Global Software Engineering: Interactive Exercises for the Classroom , 2014, 2014 IEEE 9th International Conference on Global Software Engineering.

[122]  Beryl Plimmer,et al.  A global software project: developing a tablet PC capture platform for explanograms , 2008 .

[123]  Tony Clear,et al.  E-learning: A Vehicle for E-Transformation or Trojan Horse for Enterprise? – Revisiting the Role of Public Higher Education Institutions , 2002 .

[124]  Mario Piattini,et al.  A Tool for Training Students and Engineers in Global Software Development Practices , 2010, CRIWG.

[125]  Judith S. Olson,et al.  Distance Matters , 2000, Hum. Comput. Interact..

[126]  C. Cramton The Mutual Knowledge Problem and Its Consequences for Dispersed Collaboration , 2001 .

[127]  Nan Xiao,et al.  Experience and recommendations for distributed software development , 2012, 2012 Second International Workshop on Collaborative Teaching of Globally Distributed Software Development (CTGDSD).

[128]  Bertrand Meyer,et al.  Awareness and Merge Conflicts in Distributed Software Development , 2014, 2014 IEEE 9th International Conference on Global Software Engineering.

[129]  Stuart H. Zweben,et al.  educational response to offshore outsourcing , 2006, SIGCSE '06.

[130]  Fabian Fagerholm,et al.  Onboarding in Open Source Software Projects: A Preliminary Analysis , 2013, 2013 IEEE 8th International Conference on Global Software Engineering Workshops.

[131]  Pär J. Ågerfalk,et al.  Agile Practices Reduce Distance in Global Software Development , 2006, Inf. Syst. Manag..

[132]  John Noll,et al.  A Qualitative Study of Open Source Software Development: The Open EMR Project , 2011, 2011 International Symposium on Empirical Software Engineering and Measurement.

[133]  BeechamSarah,et al.  Global software development and collaboration , 2011 .

[134]  Ivica Crnkovic,et al.  Collaboration patterns in distributed software development projects , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[135]  Kathleen M. Swigger,et al.  The temporal communication behaviors of global software development student teams , 2012, Comput. Hum. Behav..