International group work in software engineering
Julian M. Bass
Robert Gordon University Aberdeen, UK [email protected]
J. T. Lalchandani
IIIT-B Bangalore, India
[email protected]
R. McDermott Robert Gordon University
Aberdeen, UK [email protected]
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 classroom- based 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 problem- based 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, feature- driven 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)
Q1 Previous experience of group work.
Q2 Degree of familiarity with CT.
Setting up the collaborative project
Q3 Collaboration challenges (operational, academic, social, etc.).
Q4 Selection and decision about using a particular CT(s).
Use of technology as the project progressed
Q5 Match between task requirements and technological capabilities.
Q6 Effect of technology on the way of interaction.
Impact of use of technology and benefits from project
Q7 Impact on the quality of project processes.
Q8 Academic (skills, content) & Professional (team work, project management) benefits.
Perceptions of goals by
different stakeholders Q9 Personal objectives, degree of success of the assigned module, viewpoint of future employers, improvements (if any).
Figure 1. Summary of survey questionnaire