International group work in software engineering Julian M. Bass Robert Gordon University Aberdeen, UK j.m.bass@rgu.ac.uk J. T. Lalchandani IIIT-B Bangalore, India jtl@iiitb.ac.in R. McDermott Robert Gordon University Aberdeen, UK roger.mcdermott@rgu.ac.uk Abstract This paper describes an on-going development of International Group Work as part of Software Engineering teaching and learning. Social computing (collaboration) software tools were used to enable communication and joint working. Scrum, an agile software development method was used. An initial pilot was conducted as an exploratory extra-curricular activity. Subsequently, a credit bearing pilot was conducted as an integrated part of the syllabus at both the participating institutions and will be further explored in a subsequent phase of our study. Our international software engineering group project pilot major benefit included - graduate employability by offering first-hand experience of a geographically distributed software development model. Keywords agile methods, global software development (GSD), problem-based learning (PBL) 1. Introduction Globalisation has led to increase in worldwide fluidity of information flows and international travel (Stiglitz, 2003). These trends have affected software engineering (Herbsleb and Mokus, 2003; Vardi, 2010) processes and its execution. The trend towards globalised software production has been pioneered by software intensive high-technology businesses (Herbsleb & Moitra, 2001). In large enterprises, global software development (GSD) which involves outsourcing, offshoring and use of different distributed development models, has become the norm. This is motivated by the need to compete in a global software market, sustain productivity and respond to changing software procurement processes. This paper addresses two related research questions: firstly, how can universities provide opportunities for students to gain first-hand experience of geographically distributed software Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission.
2013 The Higher Education Academy development projects?, and secondly, how can such project experiences be harnessed to improve employability skills in the commercial and global software sector? To investigate these two research questions, our International Group Projects have been jointly carried out between two collaborating universities, the International Institute of Information Technology, Bangalore (IIIT-B), and Robert Gordon University (RGU). The paper is structured as follows. The following section considers problem-based and project learning. We then give an overview of the steps followed in an agile software development process in Section 3. Next, Section 4 describes the research methodology used, in this case a classroombased action research approach. This is followed by Section 5 which describes our International Software Engineering Group-Project Pilot, which enabled students from Aberdeen, UK and Bangalore, India to collaboratively design and build a software system. Section 6 lists our key findings based-on the first cycle of our project pilot, and Section 7 concludes our paper. 2. Related work Problem-based learning (PBL) creates learning situations that are open-ended, self-directed and that are founded on enquiry and discovery (Boud and Feletti, 1997). The intention in PBL is to design area specific study scheme in a group-setting for learners, around problems closely related to a real life scenario (Thorley & Gregory, 1994). Such an approach helps model the ways people learn to solve problems by applying their knowledge and skills. We view project work as a form of problembased learning. Prior to joining a professional group, project work provides an opportunity to rehearse activities without the immediate pressure of assessment. Such activities enable the learner to develop skills and construct newer understanding in a safe environment. Due to direct learner involvement, the project work attracts advantages of PBL along with opportunities for learners to follow their particular interests within the project. Further, student learners are expected to demonstrate planning skills, creativity and imagination to complete the project assignment. And, motivation is achieved through the fact that learners control the direction, project scope and its solution. However, such an approach demands sensitive supervision of learners, as well as sufficient learner initiative along with analysis and evaluation of candidate solutions. 3. Agile Software development process It is to be noted that agile development is not a methodology in itself. It is an umbrella term that describes several agile methodologies. These methodologies include Scrum, XP, Crystal, featuredriven development, and dynamic systems development methods. Moreover, lean practices have also emerged as a valuable agile methodology and have been included under the agile development umbrella. In our project pilot, discussed in next section, we have adopted scrum as a part of our student activity. Such development methods use short delivery cycles increasing flexibility in the face of changing customer needs (Agile Alliance, n.d.). Scrum focuses on orchestration and management of
agile development (Schwaber & Beedle, 2001) processes. In addition, the scrum method advocates short, focused periods of development called sprints that typically last between two and four weeks. The functional requirements for software under development are recorded, analysed and then prioritised in the form of user stories. The user stories are brief textual, non-technical descriptions which are prioritised before the start of each sprint by a customer representative. Project team members communicate with each other during the eponymous daily scrum meeting and are responsible to demonstrate working, tested software to the client at end of each sprint. These customer demonstrations are used to gather feedback from the client. 4. Research methodology This research has adopted a classroom-based action research approach. Action research is an iterative methodology for understanding and reflecting upon practice (Lewin, 1982; McNiff, 2001). Action research is used to overcome some perceived challenge or effect positive change in practice. Our challenge was to create opportunities to experience international project working for our students. Our action research has comprised two main cycles: firstly, around our initial pilot, and secondly, around our credit-bearing pilot. Reflection was aided by the use of a journal which included entries made at critical points throughout the projects (Schon, 1983). These journal entries were then reviewed, coded and analysed (Patton, 2002). Our action research cycle comprises four phases: (1) problem identification, (2) planning, (3) action and (4) evaluation (McNiff, 2001). A third action research cycle will commence in February 2014, when we hope to broaden the project to full classes in the formal syllabus of both institutions. An open-ended survey questionnaire (see Figure 1) was used to elicit feedback from student participants. The questionnaire was returned by 10 out of the 12 student participants. Only one student had no prior experience of group working. 5. International Software Engineering Group project In this section, we first present the discussion on our project s initial pilot, which is followed by the exercise of credit bearing pilot. The main objectives of our initial pilot project were to enable students to: 1. Explore software development in an international team, 2. Use social computing (collaboration) software tools to enable communication, 3. Use scrum, an agile software development methodology, and 4. Assess the impact of culture on communication between team members. We established two groups of six students, comprising three students from each participating institution. The groups were responsible for establishing a project manager role, which was rotated through different group members during the project. Each of the groups had co-located online meetings. Further, the decisions taken in such meetings were documented through meeting minutes. Each group was asked to produce the requirements and design documents, implemented software, testing results, and a project report. Participants forming these two groups were selected from a set of volunteers. The participant selection was on the basis of previous experience,
academic performance, individual class attendance records and communication skills (as assessed by oral interview). Each participant of the groups was given an opportunity to undertake training in the agile software development process. The initial pilot outcome was sufficiently positive to encourage us to conduct a credit-bearing pilot as part of the syllabus in both institutions. The pilot participants were again selected from volunteers. However, this time the international project replaced another assessed activity, forming a module grade. Also, interactions during group meetings were scheduled through timetabled class time. This simplified the process of arranging real-time conversations between group members. Groups were also encouraged to arrange additional meetings outside class. An intensive two day workshop on agile software development methods was provided to group members. The two day workshop was based on a commercial short course available from RGU. The supervisory team acted as product owners using the scrum agile method. The product owner role represents interests of the client towards the project. The product owners provided a prioritised list of software s functional requirements. However, they did not project manage the team, as such. Each of the teams built a software application comprising an online survey environment involving mobile phone client software for asking questions collated into a server for storing survey results in a database. 6. Findings In this section, we present our key findings for our initial pilot as well as the credit bearing pilot. The initial pilot showed positive benefits to students by providing first-hand experience of a global software development project. Students welcomed the opportunity to use online collaboration tools and expressed support for the objectives of the project. However, we identified a number of challenges. Groups expended considerable energy seeking mutually convenient meeting times. Also, commitment to the project deteriorated during assessment periods of other courses, since the entire project activity was extra-curricular. During credit bearing pilot, the main purpose of our project was to provide an opportunity for students to acquire improved collaboration skills. Following were the key findings based on our project pilot. 1. 50% of the team members had a prior experience of working in groups. While, almost 50% of the team members had little prior experience of working with collaborative technology (CT). However, 25% of team members had considerable amount of experience on working with CT. It should be noted that these members had a definite impact on the overall success of the project. 2. Though the technologies used in the credit bearing pilot included use of google groups, skype, github, asaana and whatsapp, all the team members found that taking up such a project gave them an opportunity to look into other alternative technologies such as trello, rabbit svn, dropbox, jabbr etc. which could be useful in their future assignments during employment. 3. Though in the project pilot, the product owners had no preferences over the selection and use of specific technologies, it was found that this could not be the case in an industrial project setup. The same could also be concluded in deciding technologies needed in development phase.
4. The main challenge, consistent with other GSD activities, were communication problems, time zone differences and aligning the experiences of different team members to the advantage of the ongoing project. This also involved conflict resolution at times, by the corresponding team leads to find a final solution. This was even difficult when in initial phases of the project; the team leads from each institution had to decide upon the set of software tools and technologies that the teams would use throughout their project period due to the different technologies available in the market. 5. In addition, academic learning and opinion of existing technologies by different team members made the overall technology selection process cumbersome. 6. On the other hand, most of the team members said that communication was the key, and specifically clear and precise communication was important, which at times due to the language differences, led to discrepancies in the overall project plan, rework, and sometimes even duplication of work due to misunderstandings. In addition to our findings listed above, we present the experience of participants through few of the following feedback responses received during the process of completing our questionnaire (see Figure 1) working with people from different backgrounds, I believe that I ve learned to be open minded and I could practice my team-working skills. Similarly, I honestly believe I benefitted a lot when I consider people skills. Further, the module provided an opportunity to learn about software development methods. And, this module benefited me with agile methodology skills. Also, it was nice to experience agile [software development] process model. Students were aware of potential employability benefits of involvement in such an international project. This was evident from some of the comments received from them indicating that - employers view this type of exercise as a good thing and employers would value this kind of experience. One said, I think it has increased my employability prospects more so than any other module I have taken at University so far. Experience and use of collaborative technology (CT) Setting up the collaborative project Use of technology as the project progressed Impact of use of technology and benefits from project Perceptions of goals by different stakeholders Q1 Previous experience of group work. Q2 Degree of familiarity with CT. Q3 Collaboration challenges (operational, academic, social, etc.). Q4 Selection and decision about using a particular CT(s). Q5 Match between task requirements and technological capabilities. Q6 Effect of technology on the way of interaction. Q7 Impact on the quality of project processes. Q8 Q9 Academic (skills, content) & Professional (team work, project management) benefits. Personal objectives, degree of success of the assigned module, viewpoint of future employers, improvements (if any). Figure 1. Summary of survey questionnaire 7. Concluding remarks
The development of software products has become an increasingly globalized activity. We are enthusiastic to incorporate experience of an international software development activity into our computing syllabus. Such an exercise provides students with valuable learning about software engineering practices as well as acquisition and improvement of soft skills. The initial pilot was extracurricular and used to explore practicalities and potential benefits of an international group project. A second, credit-bearing, pilot was conducted to address some of the short-comings in the initial pilot. It is important to note that scheduling timetabled sessions for international teams improved the communication frequency. For future work, the international project will investigate scaling to a full class. The UK class at RGU typically comprises 30-40 students. However, the IIIT-B class is around 120 students. We are planning to investigate how our project could be made available to such a large number of students while maintaining an affordable supervision overhead. Further, the authors have been awarded funding from the Higher Education Academy to investigate the use of international project in software engineering UK-wide. We plan to report on the findings of that broader study in future. References Agile Alliance. (n.d.). Retrieved September 25, 2011, from http://www.agilealliance.org/ Boud, D., & Feleltti, G. (1997) The Challenge of Problem-Based Learning, 2nd ed., London, Kogan Page. Herbsleb, J. D., & Mockus, A. (2003). An Empirical Study of Speed and Communication in Globally Distributed Software Development. IEEE Transactions on Software Engineering, 29(6), 481 494. Herbsleb, J. D., & Moitra, D. (2001) Global software development, IEEE Software (18:2), pp. 16-20. McNiff, J. (2001) Action Research: Principles and Practice, 2nd ed., Abingdon, Oxon, Routledge. Lewin, K. (1982) Action Research and Minority Problems, 2nd ed., Victoria, Australia, Deakin University Press. Patton, M. Q. (2002) Qualitative Research and Evaluation Methods, 3rd Ed., Thousand Oaks, Ca., Sage Publications. Schön, D. (1983) The Reflective Practitioner, New York, NY, Basic Books. Schwaber, K., & Beedle, M. (2001) Agile Software Development with Scrum. Upper Saddle River, NJ, Prentice Hall. Stiglitz, J. (2003). Globalization and Its Discontents. Penguin. Thorley, L., & Gregory, R. (1994) Using Group-Based Learning in Higher Education, London, Kogan Page Ltd. Vardi, M. Y. (2010). Globalization and Offshoring of Software revisited. Commun. ACM, 53(5), 5 5.
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission. 2014 The Higher Education Academy