[ieee 2012 first international workshop on software engineering education based on real-world...

4
Teamwork, Coordination and Customer Relationship Management Skills: As Important as Technical Skills in Preparing Our SE Graduates Daniela Damian and Arber Borici Software Engineering Global Interaction Lab Department of Computer Science University of Victoria, Canada [email protected], [email protected] Abstract—Teaching real-world software engineering (SE) skills requires innovative methods to facilitate students’ learn- ing technical as well as communication, teamwork, and analysis of ill-structured problems. In this paper we describe our experiences in designing and teaching these skills in our SE courses at the University of Victoria in the last 10 years. We describe the learning outcomes and instructional design in our courses, as well as the challenges we face. Keywords-Software engineering education, software engi- neering instruction, education strategies I. I NTRODUCTION Changing requirements in global software engineering and demands of the software engineering industry must be addressed in modern curricula to respond to such trends by adding or improving our students’ skills [1], [3]. In our software engineering (SE) courses we include hands- on activities to achieve a balance between the technical skills as well as the competencies of problem analysis, collaborative teamwork and communication. Reconstructing the complexity of software development from industry in the classroom is challenging and requires innovative methods that simulate real world environments as well as facilitate students’ reflection on their and others’ experiential learning process. To achieve this we use principles of problem-based learn- ing [2] in which we embed the particular characteristics of software engineering problems [8]. Unlike our traditional classroom environments, projects in industrial settings are typically not well-structured and inherently embedded in social and organizational contexts. Software development is characterized by a lack of well-defined problems and a critical need for teamwork of engineers with different skills and levels of knowledge. It involves exploring different possible paths throughout the development life-cycle, rather than a straightforward application of techniques learned in the academia. Software projects nowadays are no longer achievable by one single person, but require iterative ap- proaches to the understanding and development of software designs and products, as also reflected by the adaptation of such practices in such environments [4], [6], [5], [7], [9]. Among the courses designed and taught by harnessing these principles are Requirements Engineering, Object-oriented Software Development, Introduction to Systems Analysis, and Global Software Development. The latter course is generally designed to integrate global SE skills and strate- gies through the use of agile practices within international, geographically distributed teams. This paper presents the learning outcomes and strategies embodied in the design and instruction of SE engineering courses at the University of Victoria. The paper is structured as follows. Section 2 presents an overview of the learning outcomes and the main instructional design strategies. Sec- tion 3 discusses challenges and lessons learnt in carrying out such instructional design. II. LEARNING OUTCOMES AND I NSTRUCTIONAL DESIGN STRATEGIES The main learning outcomes and skills sought for the pool of SE courses mentioned above are succinctly listed as follows: 1) To tackle/redefine ill-structured, wicked problems. 2) To work with a collaborative development environ- ment learn new collaborative technologies. 3) To develop skills of teamwork, work estimation and planning, effective communication and coordination, through in-situ or remote work. 4) To apprehend and practise the agile development pro- cess with frequent iterations. 5) To become involved in existing projects with ongoing global development. 6) To work with legacy code and comprehend existing programs. 7) To interact within geographically-distributed develop- ment environments. 8) To establish and maintain client-developer relation- ships. 9) To overcome barriers of inter-cultural differences by working within multicultural teams. In the attempt to accomplish these learning outcomes, the major instructional design strategies employed are summa- rized as follows. The numbers in parentheses correspond to the enumerated learning outcomes listed above. 978-1-4673-1805-1/12/$31.00 c 2012 IEEE EduRex 2012, Zurich, Switzerland 37

Upload: arber

Post on 14-Mar-2017

215 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: [IEEE 2012 First International Workshop on Software Engineering Education based on Real-World Experiences (EduRex) - Zurich, Switzerland (2012.06.9-2012.06.9)] 2012 First International

Teamwork, Coordination and Customer Relationship Management Skills: AsImportant as Technical Skills in Preparing Our SE Graduates

Daniela Damian and Arber BoriciSoftware Engineering Global Interaction Lab

Department of Computer ScienceUniversity of Victoria, Canada

[email protected], [email protected]

Abstract—Teaching real-world software engineering (SE)skills requires innovative methods to facilitate students’ learn-ing technical as well as communication, teamwork, and analysisof ill-structured problems. In this paper we describe ourexperiences in designing and teaching these skills in our SEcourses at the University of Victoria in the last 10 years. Wedescribe the learning outcomes and instructional design in ourcourses, as well as the challenges we face.

Keywords-Software engineering education, software engi-neering instruction, education strategies

I. INTRODUCTION

Changing requirements in global software engineeringand demands of the software engineering industry must beaddressed in modern curricula to respond to such trendsby adding or improving our students’ skills [1], [3]. Inour software engineering (SE) courses we include hands-on activities to achieve a balance between the technicalskills as well as the competencies of problem analysis,collaborative teamwork and communication. Reconstructingthe complexity of software development from industry in theclassroom is challenging and requires innovative methodsthat simulate real world environments as well as facilitatestudents’ reflection on their and others’ experiential learningprocess.

To achieve this we use principles of problem-based learn-ing [2] in which we embed the particular characteristics ofsoftware engineering problems [8]. Unlike our traditionalclassroom environments, projects in industrial settings aretypically not well-structured and inherently embedded insocial and organizational contexts. Software developmentis characterized by a lack of well-defined problems anda critical need for teamwork of engineers with differentskills and levels of knowledge. It involves exploring differentpossible paths throughout the development life-cycle, ratherthan a straightforward application of techniques learned inthe academia. Software projects nowadays are no longerachievable by one single person, but require iterative ap-proaches to the understanding and development of softwaredesigns and products, as also reflected by the adaptation ofsuch practices in such environments [4], [6], [5], [7], [9].Among the courses designed and taught by harnessing these

principles are Requirements Engineering, Object-orientedSoftware Development, Introduction to Systems Analysis,and Global Software Development. The latter course isgenerally designed to integrate global SE skills and strate-gies through the use of agile practices within international,geographically distributed teams.

This paper presents the learning outcomes and strategiesembodied in the design and instruction of SE engineeringcourses at the University of Victoria. The paper is structuredas follows. Section 2 presents an overview of the learningoutcomes and the main instructional design strategies. Sec-tion 3 discusses challenges and lessons learnt in carrying outsuch instructional design.

II. LEARNING OUTCOMES AND INSTRUCTIONAL DESIGNSTRATEGIES

The main learning outcomes and skills sought for thepool of SE courses mentioned above are succinctly listedas follows:

1) To tackle/redefine ill-structured, wicked problems.2) To work with a collaborative development environ-

ment learn new collaborative technologies.3) To develop skills of teamwork, work estimation and

planning, effective communication and coordination,through in-situ or remote work.

4) To apprehend and practise the agile development pro-cess with frequent iterations.

5) To become involved in existing projects with ongoingglobal development.

6) To work with legacy code and comprehend existingprograms.

7) To interact within geographically-distributed develop-ment environments.

8) To establish and maintain client-developer relation-ships.

9) To overcome barriers of inter-cultural differences byworking within multicultural teams.

In the attempt to accomplish these learning outcomes, themajor instructional design strategies employed are summa-rized as follows. The numbers in parentheses correspond tothe enumerated learning outcomes listed above.

978-1-4673-1805-1/12/$31.00 c© 2012 IEEE EduRex 2012, Zurich, Switzerland37

Page 2: [IEEE 2012 First International Workshop on Software Engineering Education based on Real-World Experiences (EduRex) - Zurich, Switzerland (2012.06.9-2012.06.9)] 2012 First International

• Students work in large teams consisting of six to eightmembers of various technical, social, and cultural back-grounds (2, 3, 9). For instance, in the global softwaredevelopment course being taught at the University ofVictoria, Canada in collaboration with Aalto Univer-sity, Finland, the student teams comprise 4 Canadianstudents and 2-3 Finnish students. Also, each team isled by a graduate student (at the PhD level) supervisingother graduate and undergraduate students in computerscience. Teams are blended in a way that balances thedifferent technical and cultural backgrounds.

• Students play both the role of the software/system clientas well as that of developers. Otherwise, the studentdeveloper team could interact with a real productowner (1, 2, 3, 8). For example, in the Introduction toSystems Analysis and Software Engineering courses,student teams acted as both developers for other clientstudent teams and as client for other developer studentteams. To establish good practices, we asked students todesign and maintain organizational client and developerwebsites.

• We schedule (i.e. impose) interactive activities of re-quirements elicitation, analysis, negotiation, design andproject presentation together with the software client(8). From each client and developer student team, twoto three members act as client/developer representativesand hold scheduled meetings to elicit system require-ments and ascertain other developmental aspects. Weobserved that this practice not only ameliorated com-munication skills in some, if not all, students, but wascommended in the end by some student teams with thebenefit of social networking being cited often.

• We encourage the Rational Unified process orSCRUM/Agile practices with imposed iteration mile-stones (2, 3, 4). In the Global Software Developmentcourse, for instance, we organized a three-day work-shop on the agile methodology to train our students.The student teams have had to use mainly agile prac-tices.

• Students work in global teams and with existing collab-oration technologies (2, 3, 5, 7, 9). Computer-mediatedcommunication technologies have been resorted to forall aspects of collaboration: synchronous (e.g. Google+Hangouts, Skype, IRC) and asynchronous (text messag-ing, emailing).

• We encourage students to embody practices and tech-nologies of Computer-Supported Cooperative Work(CSCW). In particular, we assemble and provide acollaboration infrastructure to dedicate support to team-work. Examples of technologies used are Google+ formultiple video hangouts, Skype for voice calls, instantmessaging systems such as IRC, and email. Moreover,teams have the option of using physical war roomsto hold SCRUM meetings, form ad-hoc groups, and

to conduct other cooperative work. From our primaryunobtrusive observations of student work, this collabo-ration infrastructure has arguably attenuated the impactof geographical distance on collaborative teamwork (2,3, 4, 7, 8, 9).

III. TWO ILLUSTRATIVE PROJECTS

In this section, we describe two types of courses inwhich we implemented these instructional strategies at theUniversity of Victoria, Canada.

A. Employing Agile Methods in Global Software Develop-ment

The adoption of agile methods in global software develop-ment (GSD) posits challenges due to its basic requirement ofbeing employed in collocated settings. The primary intent ofthe project described here was to emulate agile methods ina GSD setting involving multi-site development (in Finlandand Canada). The resultant objectives were thus to teachGSD skills to students, to expose them to the inherent chal-lenges of GSD settings, and to introduce them to a varietyof collaborative technologies. The emphasis on developingskills of communication, teamwork and collaboration wasrelated to the fact that these are the activities that are mostchallenged in global software teams.

The course, which ran for four months in the January2012 semester at the University of Victoria, was arranged incooperation with Aalto University, Finland. 25 PhD, Mas-ters, and undergraduate Canadian and Finnish students ofvarying technical backgrounds and experiences were dividedinto three 7-8-member teams and were assigned user storiesto enhance features of Agilefant,1 a backlog managementsystem supervised by a Finnish client. Working in a real-world GSD environment, we intended for students to learnto work with a real client, to get involved in an ongoingglobal project, to develop teamwork and communicationskills, to learn to coordinate effectively, and to overcomecultural differences.

B. Requirements Engineering and System Analysis Coursesfor Undergraduate SE Students

In the past ten years, the primary author of this paper(Damian), instructed a number of undergraduate softwareengineering courses at the University of Victoria on thesubjects of Requirements Engineering, System Analysisand Object-Oriented Software Development in which thesestrategies were also deployed. Besides the curricular lectur-ing component, students were divided into software projectteams based on their technical abilities and were given a poolof project statements to choose from. Each team acted bothas clients and developers for a particular project: a developerteam was matched with a client team from the class, and thesame team acted as client for another developer team.

1http://agilefant.org.

38

Page 3: [IEEE 2012 First International Workshop on Software Engineering Education based on Real-World Experiences (EduRex) - Zurich, Switzerland (2012.06.9-2012.06.9)] 2012 First International

This instructional strategy enabled students to develop notonly technical, analytical skills in designing and implement-ing software projects, but also communication and teamworkskills, which are necessary in modern SE environments. Stu-dents went to through all the phases of software analysis anddevelopment. Their work culminated in a final presentationwhere, on top of what they achieved, students were asked toobjectively reflect on their experiences with the projects asclients and as developers. It is partly due to these reflectionsthat we drew some of the lessons learnt, as summarized inthe following section.

IV. CHALLENGES AND LESSONS LEARNT

Among the challenges encountered during the instruc-tional experiences with SE courses over the last decade weemphasize the following also alluding to lessons learnt:

• Students lack intra-team communication skills. Whenproblems are identified, most often there isn’t a proac-tive behaviour to tackle them; instead, students expectthe course instructor to prompt them. Consequently,problems are identified when it is too late, and studentsbecome annoyed that the instructor did not interveneearly enough. This is problematic from a teachingperspective because students’ performance is in fact as-sessed based on how they cope with difficult situationsrather than entirely on the quality of the final softwareproject.

• Students are impatient. Students expect structured andwell-defined problems, given that they are accustomedto handle problem-solving activities rather than prob-lem identification ones. As a result assignments andproject specifications appear to them reportedly as ill-defined instead of as a strategic means to expose themto ill-structured problems.

• Students lack time management skills. Coordination inlarge teams becomes a major enterprise. As a result,students report the course load to be much heavierbecause they end up spending many more hours thanbudgeted/expected for curricular courses.

• Lack of synchronization across educational institu-tions in distributed teaching. In geographically dis-tributed, multicultural teams, we have observed a lackof synchronization across different academic curricula,semester timelines and requirements, cultural differ-ences, and time-zone differences. In particular, a majorcultural difference we observed is the way thoughts,ideas, and opinions are conveyed in discourses betweenteammates belonging to different cultures and speakingdifferent languages. This and the effects of time-zonedifferences have been noted, for instance, during aglobal software development course being taught withCanadian and Finnish students in the January 2012semester.

• Students feel overwhelmed by the various communi-cation media used. Students have reported that theuse of different communication channels to conveyand receive project-centric information is, at times,overwhelming. For instance, the use of emails, instantmessaging systems, web-based course management an-nouncement systems, social networking and/or micro-blogging could loosen students’ focus in filtering what’scrucial and relevant to their project. In contrast, severalstudents have also reported lack of proper communi-cation with respect to such crucial information. Thishas been particularly observed in the case of globalsoftware development courses. As a consequence, stu-dents reported a lot of coordination problems andhurdles, stating also that it was easier to miss importantcoordinative actions thus making them at times lessproactive.

Overall, we believe that the challenges students have faceddue to our instructional design and strategies have broughtabout two chief elements that made them appreciate theirwork: first, the shaping and exercise of students’ skills tomeet the challenges posed during their collaborative work,and second, the work completed to fulfill the objectives. Welearnt these two general elements while reviewing students’reflections on their experience conveyed orally and in writtenreports.

ACKNOWLEDGMENTS

We would like to thank the anonymous reviewer whoadvised us to briefly illustrate one or two projects in orderto contextualize the challenges and lessons learnt.

REFERENCES

[1] D. Damian, A. Hadwin, and B. Al-Ani. Instructional designand assessment strategies for teaching global software develop-ment: A framework. In Proceedings of the 28th internationalconference on Software engineering, ICSE ’06, pages 685–690,New York, NY, USA, 2006. ACM.

[2] C. J. Green, G. H. van Gyn, J. R. Moehr, F. Y. Lau, andP. M. Coward. Introducing a technology-enabled problem-based learning approach into a health informatics curriculum.International Journal of Medical Informatics, 73(2):173–179,2004.

[3] J. Herbsleb and D. Moitra. Global software development.Software, IEEE, 18(2):16–20, Mar/Apr 2001.

[4] M. Paasivaara and C. Lassenius. Collaboration practicesin global inter-organizational software development projects.Software Process Improvement and Practice, 8(4):183–199,2003.

[5] M. Paasivaara and C. Lassenius. Using iterative and incremen-tal processes in global software development. In Proceedingsof the 3rd International Workshop on Global Software Devel-opment, pages 42–47, 2004.

39

Page 4: [IEEE 2012 First International Workshop on Software Engineering Education based on Real-World Experiences (EduRex) - Zurich, Switzerland (2012.06.9-2012.06.9)] 2012 First International

[6] M. Paasivaara and C. Lassenius. Could global softwaredevelopment benefit from agile methods? In Proceedings ofthe 2006 IEEE International Conference on Global SoftwareEngineering, ICGSE 2006, pages 109–113, 2006.

[7] M. Paasivaara and C. Lassenius. Using Scrum Practices inGSD Projects. In D. Smite, N. B. Moe, and P. J. Agerfalk,editors, Agility Across Time and Space: Implementing AgileMethods in Global Software Projects. Berlin: Springer, 2010.

[8] G. Regev, D. Gause, and A. Wegmann. Requirements engi-neering education in the 21st century, an experiential learningapproach. In International Requirements Engineering, 2008.RE ’08. 16th IEEE, pages 85–94, sept. 2008.

[9] H. Smits and G. Pshigoda. Implementing scrum in a distributedsoftware development organization. In AGILE 2007, pages371–375, 2007.

40