Use of Pair Programming for Experience Exchange in a Distributed Internship Project – A preliminary analysis of the results Andrea Janes, Barbara Russo, Giancarlo Succiƒ Center for Applied Software Engineering, Free University of Bozen, Bolzano, Italy
Abstract This paper report on an experience of distributed internship project held in the Faculty of Computer Science of the University of Bolzano-Bozen. We monitored the knowledge transfer using Pair Programming practices within an “integrated” distributed environment. We found that Pair Programming was successful in spreading knowledge and increasing skills and consciousness of the Pair Programming effectiveness among the group of students selected for the experience.
Keywords: Pair Programming, Distributed Environment
1 Introduction Pair Programming (PP) is a style of programming belonging to XP practices, in which two developers seat side by side in front of the same computer, working on the same code. They collaborate in the whole coding development starting from the design. They share experience and skills in order to get a better code. However, often, programmers cannot be physically together. So, there is the need to investigate whether PP practices can overcome geographical distances. The analysis of PP practices in a distributed environment has become extremely relevant. This work reports on the experience of a group of students doing a summer internship experience at the end of their first year in Applied Computer Science. For three months students have worked in a company the whole week to exception of the Friday afternoons, when they have met altogether in a university laboratory. Here they have worked on a different project using PP practices. Our aim has been to monitor knowledge transfer they have gotten from such a structured environment. Even if such an environment is not distributed in the genuine sense of the word, similar factors may affect the success of the project. Indeed problems with non-continuous use of the same software practices, difference of environments and requests and geographic distance can be equally experienced. In the remaining of this paper we review the design of the experiment, present its result, and draw some conclusions. Address for correspondence: Prof. Giancarlo Succi, Center for Applied Software Engineering, Free University of Bolzano – Bozen, Dominikanerplatz 3 Piazza Domenicani, Bolzano – Bozen, I-39100 Italy; tel: +39(0471) 315-640; fax: +39(0471) 315-649; e-mail:
[email protected].
2 Structure of the experiment As mentioned, this research deals with students doing an internship during the summer and meeting every Friday afternoon for 4 hours to share their experience. The majority of the students work in local companies for all the working days with exception of Friday afternoons, when all of them meet in a university laboratory. A selected group of four students work for the CASE – a research center of the Faculty joining the others on Friday afternoons. The environment is distributed in the sense that student have the chance to work together only one afternoon per week, spending the rest of the week working in geographically distant places. In the university laboratory, all the students develop software following the Pair Programming practice. This work is completely independent to the one they do during the rest of the week. In all the companies there are no special indications to use XP practices except for students working for CASE, where XP is continuously adopted. Altogether, the use of Pair Programming is non continuous – only on Friday afternoons – and alternated with other coding styles. 2.1 GQM of the experiment To properly structure the experiment, we use the well known GQM paradigm (Basili et al., 1988) according to the guideline of (Wohlin et alt., 1999): Goals: Monitoring skills acquired in using PP in order to investigate Perspectives: - Knowledge transfer - Effectiveness of a non continuous PP practice - alternated with a different programming methodology - Integration of XP learned at University skills and practices acquired during an industrial internship Context: - Summer internship project - Distributed environment - Integrated project: University-Local Companies Questions: - How much effective is the use of PP in transferring knowledge in a distributed environment? - How much effective is PP in a non temporary continuous work alternated with other practices? - How much effective is the use of PP in integrating University studies and applicative practices of a company of an industrial environment?
Metrics: - Weekly visits in the company - Final questionnaire on the PP part of the Internship program. 2.2 Details on the environment Fifteen students have been selected for this project. Eleven have had work experience and only four are currently working students. No one has had PP experience before. The companies selected for the internship belong to different local realities and working areas. Some are software houses, others non IT organizations with an EDP department. To take full advantage of the internship, students have been introduced to the project with several seminars related to the experience of starting to work; different subjects have been presented: legal rights and duties; role of the unions; importance of, and techniques to communicate within corporate organizations; how to secure funds to create a start-up and so on. They have been introduced to team working also by role play. They have been taught time and stress management, how support a talk and how give priorities. At the beginning of the internship, each company has assigned a task to the students. Most of the time company assignments have been part of a big project already started. Since the students have attended a course on Java during the previous semesters, all of them have been able not only to use Java, but also to learn new languages and tools. A company-internal reference person has been selected to act as internal “tutor” of the student. Additionally some selected members of the Computer Science Faculty have provided technical and social support to students and have monitored the overall experience. So almost every week, a member of the University staff have visited the student in the company and reported on the student’s situation. Reports have been published on an internal web site, so each instructor could access them. Students and companies have been aware of the dates of the visits in advance so that the internal tutor could be present to the visit. During the Friday afternoon meetings all the students have had the chance to communicate, to compare and to analyze their week experience, evidencing similarities and differences. In this way they have had the chance to increase their skills by knowledge transfer. They have been able to appreciate the links between what they study in theory and what they do in practice. An instructor and a “virtual customer,” i.e., a faculty member acting as the customer, have always been present in the room. The whole project has been divided into independent subprojects, each assigned to a group of four students experiencing PP. Periodically they switched partners in the team.
In each of the four teams there has been a member of the group of students working for the university laboratory. At the end of their experience they answered to a questionnaire. 2.3 Structure of the questionnaire The questionnaire consists in three main parts. The first describes the student’s status – working experience and skills - the second deals with the Internship experience and the third report the student’s opinion on the PP style. It is structured by several multi choice questions alternated with some rating and free style questions regarding the following topics: 1. 2. 3. 4. 5. 6.
General working experience Skills in informatics Skills in some PP features Internship: Project knowledge Internship: Project structure Internship: Project support
7. Internship: Communication tools 8. Internship: PP Best Aspect 9. Internship: Benefits 10. Valuation PP: Hardest Thing 11. Valuation PP: Non Effectiveness 12. Valuation PP: Most Important Aspect
Table 1: Principal subjects of the questionnaire.
In the first three items of Table 1, student’s working experience in computer science is evaluated. It has been measured by common questions on working experience and on some aspects of team working. Point 4. focuses on what of the project was known before the Internship experience, such as tools (NetBeans, …), languages (Java, PHP, …) and approach to the problem - how translate requirements in code. In order to evaluate students’ degree of comprehension of the project, point 5,6 and 7 ask students to describe the project – structure, and technical and human support – and the communication tools they have used during the experience. The following two points measure the PP practice fielded in the students’ experience, while the last three points ask students to give an opinion on the PP style independently from the project. Here we reproduce the acronyms of measures which have a significant correlation. Besides each acronym we put the reference number of Table 1. 1-2
3
WS WE WECS WPE WTE PPW PSC
Working student Work experience Work Experience in Computer Science Experience in Working in Pair Experience in Working in team Is Pair Programming worth? Experience in working in pair sharing the same computer
Experience in working on the same code Experience in work division Experience in sharing experience Project Tools knowledge Knowledge of how translate the requirements in code – Problem Approach Switch partner more then two times Customer’s physical presence Reference Instructor’s technical support Customer physical Presence Use of Telephone Use of NetMeeting Use of Instant Messenger Use of e-mail Increasing Learning and Comprehension Increasing Communication and Team working Increasing Tim Management Increasing Opportunity of experimentations Increasing Self-reliance Increasing Problem Solving and Strategy Thinking The use of PP is not effective Soon After a First Year Course The use of PP is not effective for a Short Experience The use of PP is not effective if Both Partners are not Equally Competent The use of PP is not effective if the Project is Unknown
SC WD SE TL PA SP CP PS CP T NM IM EM LC CT TM OE SR PSST SAFYC STE BPEC PU
4 5 6
7
9
11
Table 2: Measures acronyms
3 Results In this section there is a summary of the results of the questionnaire. Clearly, this is a first analysis done right at the end of the experience –September 30, 2002. More accurate analysis will be performed in the future. Correlations and frequencies have been collected using SPSS, a well known statistical tool. We structure results in Tables in which we reproduce the frequencies, the Pearson’s correlation coefficient and the p-significance. As usual, we consider αHigh
Low---------->High
Communication
Learning and comprehension Time management Self-reliance
Experience soon after a first year course Short period Unknown project
Opportunity to experiment
b
a
Table 4: Ranking Internship Benefits and Causes of problems in PP
Students who have worked in our research laboratory (CASE) have experienced PP every day. As a result, in the questionnaire it appears that they have a better consciousness of the skills they have acquired and of the meaning of PP. Correlations and frequencies coming out from the first part of the questionnaire, give a snap-shot of students’ curricula. The majority of them are non-working students with few working experience. Working students are mostly in computer science. General team working has a good correlation with working experience – Table 5. WTE WS WE WECS
WECS 0.85 P=0.000
WS
0.57 P=0.032 0.85
p=0.000
Table 5: General working students' curricula correlations
WTE
SP -0.68 p=0.008
TL -0.55 p=0.043
WPE
PSC
SC
WPE 0.64 p=0.013
0.65 p=0.012
0.53 p =0.050
WTE
0.64 p =0.013
PPW 0.62 p=0.018 0.96 p =0.000
WE 0.57 p=0.032
Table 6: Correlations with Team/Pair Working Experience
PSC
CP 0.60 p=0.023
PSC
0.92 p=0.000 0.77 p=0.001 0.69 p=0.007
SC WD SE
SC 0.92 p=0.000
0.74 p=0.002 .64 p=0.015
WD 0.77 p =0.001 .74 p=.002
SE 0.69 p=0.007 .636 p =0.015 0.88 p=0.000
WPE 0.62 p =0.018 0.96 p =0.000
PPW 0.57 p=0.032
.88 p=.000
Table 7: Correlations with Experience in Pair Programming Aspects
From Table 6 and Table 7 we may deduce that students, who have experienced a general work in team or in pair, know and appreciate the PP practice in some of its aspects – “Experience in working in pair sharing the same computer” (PSC) and “Experience in working on the same code” (SC). Students with work experience have more team working experience than working in pair experience; if they have working in pair experience, they experienced some of the PP aspects - Table 7, column “Experience in Working in Pair” (WPE). Table 7 also shows that the four different aspects of PP are each other correlated. In the following Table one can see the relation with variables which measure the project knowledge.
TL PA
T -0.73 p=0.003
NM
EM
-0.78 p=0.001
0.58 p=0.031
WTE -0.55 p=0.043
Table 8: Correlations concerning the Initial Project knowledge
The second part concerns Internship benefits evaluation. Here we reproduce the most significant correlations:
LC
PSST 0.78 p=0.001
LC
OE
SP 0.59 p=.026
CP
EM
IM
0.68 p=0.008
CT
-0.74 p=0.002
TM -0.58 P=.031
SR PSST
STE
0.782 P=.001
0.57 p=.032
0.57 p=.032 -0.55 P=.042
OE
Table 9: Correlation with Internship Benefits
From Table 9, the two abilities “Increasing Learning and Comprehension” (LC) and “Increasing Problem Solving and Strategy Thinking” (PSST) are both correlated each other and with “Switch partner more then two times” (SP). This might mean that switching partner more then two times has a good influence in increasing global comprehension of the project and maturity of the students. Communication and Team working are good related with the Virtual Customer’s physical presence. The ability to manage time is highly negatively related with the non effectiveness of a PP short time experience. By the frequency of the positive answers to “Increasing Tim Management”(TM) - Table 3 - we may deduce that students think that PP helps to manage time when time chases. The negative correlation with the two communication tools – “Use of e-mail” (EM) and “Use of Instant Messenger” (IM) - might indicate that the more students think to have increased skills, the less they use communication tools. By the frequencies Table 3, we may deduce that the communication tools of Table 9 are the most used. These two facts together might imply that the more students become conscious of their abilities, the more they think enough to meet the partner once a week. A deeper understanding of the communication tools use is given by Table 10.
T NM EM
TL -0.73 p=0.003
PA
OE
-0.78 p=0.001 0.58 p=0.031
0.55 p=0.042
SR
-0.58 p=0.031
IM
Table 10: Communication Tools
The use of telephone is negatively correlated with the tools used for coding during the Internship. This means that students use telephone when have troubles with software tools. In the same way we may say that NetMeeting has been used by students who initially less know how to approach the project. E-Mail has a good correlation with initial ability in approaching the project (PA) and the opportunity of experiment given by the Internship (OE). Instant Messenger and Self-reliance are negatively correlated, as Table 11 shows. SAFYC SAFYC STE BPEC
.639 p=0.014 0.541 p=0.046
STE 0.639 p=0.014
BPEC 0.541 p=0.046
TM
-0.7455 p=0.002209
Table 11: Pair Programming is not effective if
The correlation of “Considering the use of PP not effective soon after a first year course” (SAFYC) with “Considering the use of PP not effective for a short experience” STE and “Considering the use of PP not effective if both partners are not equally competent” (BPEC) confirm well known results on the XP practices. The individual meeting by a faculty member has evidenced that conflict of personalities and difference in skills caused the most number of problems in Pair Programming. On the other hand the most common answer to the best aspect of PP has been – as students have said – “two minds working on the same code”. This might mean that although PP attracts students, they realize that this coding style is really involving.
4 Conclusion This paper performs a first analysis of the experience of a summer internship program run on a selected group of fifteen students. The goal is to monitoring the knowledge transfer using PP. The peculiarity of this case study consists on the kind of distributed environment and on a methodology approach where PP has been alternated with other programming styles. Students working for a university lab have had better consciousness of the acquired skills and PP meaning. This is due to the better chance they have had to transfer knowledge from the weekly work to the Friday afternoon work and vice-versa. Indeed in both the situations they have followed the PP style. As Table 4.a shows, Communication was the benefit the 92% of all the students felt to have gained. This points out how the transfer knowledge was successful in any case.
The high percentage of positive answers to all the items in Table 4.a proves that the majority is conscious of the benefits they got from the experience. A key point is distributing each member of the selected team, that weekly works for CASE, to a different team in the Friday meetings. In this way, PP practice is more spread to all the students. Unfortunately, very few students could adopt some XP methodologies in the rest of the week. The major cause was either the small size of the company and/or the pressure to ship products. Non working students found very important the chance they got in solving problems derived from the effective work world. From the industrial environment they realized the importance of time management and the pressure of deadlines. Students have not found problem to manage time despite the short time period of their experience. Several results we have obtained in this paper confirm previous experience and deductions (Williams et al., 2000) or (Baheti et al., 2002). As in the common distributed environment communication tools play a fundamental role. Alternated and noncontinuous coding practices do not seem to have influence the good final product. Our analysis is quite preliminary and further investigation is needed.
References 1. Kent Beck “extreme Programming explained: Embrace Change”, Addison Wesley Professional, 224 pp., 2000. 2. Michael Kircher, Prashant Jain, Angelo Corsaro, and David Levine, “Distributed eXtreme Programming”, Proceedings of XP2001, May 2001. 3. Michele Marchesi, Giancarlo Succi, Don Wells, Laurie Williams editors “Extreme Programming Perspectives”, Addison Wesley Professional, 640 pp., 2002. 4. Williams L., Kessler R., Cunningham W., Jeffries R. "Strengthening the Case for Pair Programming", IEEE Software, Vol. 17, July/August 2000, pp.19-25. 5. Baheti P., William L., Gehringer E., Stotts D. MC. Smith J. „Distributed Pair Programming Empirical Studies and Supporting Environments”, Technical Report TR02-010 Dep. Computer Science, Univ. of North Carolina at Chapel Hill, March 15, 2002.