An experiment on teaching coordination in a globally distributed software engineering class

Martin Nordio, H.-Christian Estler, Bertrand Meyer, Nazareno Aguirre, Rafael Prikladnicki, Elisabetta Di Nitto, Anthony Savidis
2014 2014 IEEE 27th Conference on Software Engineering Education and Training (CSEE&T)  
The importance of planning and management skills in software development is very difficult to convey in software engineering courses. We present the synopsis of an assignment whose purpose is to demonstrate the significance of such skills, including effective communication, team coordination and collaboration, and overall project planning. The assignment is organized in the context of a distributed software engineering course carried out in collaboration with 12 universities in South America,
more » ... rope and Africa. The assignment is a globally distributed contest issued before most development activities related to the course's software project are performed, aiming at favoring the collaboration between students prior to project development. The contest does not involve any programming, and is not related to the project development activities. Instead, it consists of making teams in different countries compete in collaboratively solving a set of very simple tasks. The complexity of the activity is in team collaboration and coordination, and their lack is evident when the tasks are not correctly solved, or not solved in time. Despite the simplicity of the assignment, students have found it useful in helping them understand the significance of management and planning challenges in distributed software development. Moreover, the assignment helped in team building, by creating a better team atmosphere and contributing in identifying team members better suited for management. In recent years, some SE courses have incorporated globally distributed projects [17, 1, 15] . In these cases, projects are developed by teams located in different countries, illustrating the challenges of distributed software development. Besides the organizational barriers the instructors face [3] and the communication and collaboration issues the students face [13], these projects, distributed over several countries, continents and time zones, make SE concepts such as requirements engineering, project management, and API design even more relevant [14] . For example, a bad API design in a component developed in Brazil might produce integration problems for a component developed in Greece, producing delays or even the failure of the entire project [16] . Globally distributed projects offer an interesting setting for teaching SE. This setting, however, introduces the risk that students mainly face communication and cultural issues limiting the exploration of other SE challenges such as requirements engineering, API design, and software verification. Moreover, despite the clear barriers that cultural, time zone and language differences constitute, many students still tend to underestimate the criticality of effective management and planning; when they finally realize their importance, it is sometimes too late. Thus, a particularly difficult problem is how to prepare students to address these challenges, in particular communication and project management ones, and how to make sure students understand their crucial importance, before the course project is developed. We present an approach for dealing with the above described problem, consisting of a globally distributed contest. It is carried out in the context of a distributed software development course, called DOSE, organized in collaboration with 12 universities located in 11 countries in South America, Europe and Africa. The contest is a globally distributed activity issued before most development activities related to the course's distributed software project are performed, aiming at favoring the collaboration between students prior to the project development. The contest does not involve any programming, and is not related to the project development activities. Instead, it consists of making teams in different countries compete in collaboratively solving a set of very simple tasks. The complexity of the activity is in team collaboration and coordination, and their lack is evident when the tasks are not correctly solved, or not solved in time. Tasks of an assignment are distributed among the members of a group, with its participants located in 2-3 countries. The first main goal of the contest is to prepare students to face communication and project management issues: participating in this contest allows them to learn from their own mistakes and find better ways of organize the group. The second main goal is to unify the group: since the group members are located in different countries, students have never met each other in person; it is important then to increase the trust within groups, to facilitate that their members share a common vision for the project. Despite the simplicity of the assignment, students have found it useful in helping them understand the significance of management and planning challenges in distributed software development. Moreover, the assignment helped in team building, by creating a better team atmosphere and contributing to identifying team members better suited for management. The approach is novel in that it does not involve programming or project related activities, while being applicable to highly distributed teams, and pursuing not only better management lessons, but also better team building strategies. In this paper we describe the contest and its evaluation performed in DOSE 2012 and compare the outcomes of the projects to those in DOSE 2011 (which did not feature the contest). We believe this contest can also be organized in courses where all the team members are co-located, for example, organizing it as an on-line activity, maintaining its main design goals.
doi:10.1109/cseet.2014.6816788 dblp:conf/csee/NordioEMAPNS14 fatcat:7u7an3lhinhnthquyprhr7uw7q