a distance learning approach to teaching extreme programming chris murphy, dan phung, gail kaiser...

22
A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Post on 22-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

A Distance Learning Approach to Teaching eXtreme Programming

Chris Murphy, Dan Phung, Gail Kaiser

Columbia University

Page 2: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Introduction Many universities offer distance learning

programs for graduate students who are full-time professionals

CS departments are incorporating agile processes like eXtreme Programming (XP) into software engineering courses

This introduces various challenges

Page 3: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Introduction We present our findings from a three-year

study of such an online software engineering course

We discuss these findings in terms of the course’s educational objectives, using our observations and the students’ assessment

Page 4: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Overview Background Overview of Study Observations & Findings Analysis & Assessment Suggestions Conclusion

Page 5: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

COMS W4156 Advanced Software Engineering

Component-based software engineeringeXtreme Programming

Main educational objectivesAllow students to participate in a project using

eXtreme Programming, and learn the value of its core practices

Teach skills in the domain of quality assurance

Students work in teams (two pairs) on a semester-long project using XP

Page 6: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Columbia Video Network (CVN) Courses available online Same lectures as on-campus course

Not targeted specifically to off-campus students Videos may be used for multiple semesters

http://www.cvn.columbia.edu

Page 7: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Overview of Study Observed approx. 90 students who took the

CVN version of W4156 from 2004-2007 All students write a subjective assessment of

their experiences both at the midpoint of the course and upon its completion

No objective measurements, just subjective experiences and our observations

Page 8: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Aversion to XP Many CVN students were professionals who

were used to other SE methodologies Some had already had bad experiences

Collective ownership“The other [pair in our team] had no idea how our

code worked or even was organized, because [we] never bothered to discuss it. This created a severe challenge when we later needed to do integration and testing.”

Page 9: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Aversion to XP Test-driven development

“[We had] an incongruent idea of what unit testing is supposed to accomplish. In my [opinion], functionality should be driven by unit tests, which should be developed first. I would create tests that I felt expressed the intention we were trying to accomplish with the program, while [my partner] was creating and modifying the UI to fit the various requirements. In the end, I needed to modify the unit tests to fit his program, which I believe was a backwards way of building this system.”

Page 10: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Difficulties in Pair Programming Students needed to pair program, even

though they were not physically co-located

Challenging to break the group of distance learning students into pairs Ideally done based on skill-level or students’

personal/social preferences

Page 11: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Difficulties in Pair Programming Technical challenges

Page 12: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Difficulties in Pair Programming “Pair programming is a very difficult thing to

accomplish in the type of environment set forth by a remote class made up of professional students. From my experience, pair programming is hard to do even in a work environment with set hours and close proximity. Even though [my partner] and I are the closest in proximity of all the groups, we have had the hardest time using the pair programming idiom.”

Page 13: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Scheduling Problems Many students live in metro-NY area, but

some are on West Coast (3 hrs behind)

Most CVN students are professionals who need to work during the day, leaving only weekends and evenings

Impossible to have ad hoc “stand-up meetings”, which are critical to any XP project

Page 14: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Scheduling Problems “After the [midterm], the divide in my group grew

even more. [My partner] and I started working much less closely because of scheduling issues and finally, I believe, out of frustration.”

“The challenge is amplified by the fact that the other half of my pair [is] not only in a different physical location [from] me, but also in a different time zone. It is very difficult at times for us to find common blocks of time to work together. I think it would be easier just to work independently.”

Page 15: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Issues with Code Inspections Students missed a good learning experience for a

variety of reasons failure to adequately plan for the meeting insufficient time allocated for the inspection technical and scheduling issues

One problem “was a result of the technical communication problems we encountered doing a large conference call. Use of [text-based] chat, as was necessary to communicate with one of the team members who was out of the country, slows down proceedings dramatically.”

Page 16: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Analysis: XP Core Practices We estimate that at least half of the students

abandoned the pair programming approach only a small number (fewer than 20%) claimed to

have enjoyed pair programming or learned valuable lessons from it

Many students (over 65%) admitted that, at some point during the course, they did not write unit tests first because of time constraints or because they did not see the benefits of doing so

Page 17: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Analysis: Developing QA Skills Students were able to meet educational

objectives of learning about the importance of unit, integration, and system testing

Although some teams failed to conduct thorough testing, the percent of CVN teams that did so was not much different from the percent of on-campus teams

Code inspections presented additional challenges

Page 18: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Analysis: Other Issues Videos are not re-recorded each semester,

due to costs and the fact that the course is not offered on campus every semester

Recordings of class made in Spring 2004 described EJB 2.1, but EJB 3.0 was released soon after, and old videos were still being used up until Summer 2007

Led to much difficulty for course managers

Page 19: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Suggestions Virtual pair programming

Use a combination of tools as in [Hanks ITiCSE’05] and [Zin JISE’06]

Schedulingkeep a fixed weekly schedule for pair

programming sessions and team meetings important to communicate frequently, even if the

meetings are not ad hoc and are not face-to-face

Page 20: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Suggestions Creating teams/pairs

pre-screen students to ensure that they are capable of working in distributed teams on a project with such short time scales

confidential peer assessments were conducted to gauge the personal and professional fit of the pairs

Page 21: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

Conclusion

Page 22: A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy, Dan Phung, Gail Kaiser Columbia University

A Distance Learning Approach to Teaching eXtreme Programming

Chris Murphy

[email protected]

Columbia University