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

Slides:



Advertisements
Similar presentations
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Advertisements

A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Learning and Teaching Conference 2012 Skill integration for students through in-class feedback and continuous assessment. Konstantinos Dimopoulos City.
 Every stage from phase DESIGN in Software Development Process will have “design document” especially in analysis and design phases.  “Design document”
Production Programming in the Classroom Eric Allen, Robert Cartwright, and Charles Reis Rice University {eallen, cork,
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Requirements Engineering Course, Dr. Abdollahzadeh 1 Effectiveness.
SE is not like other projects. l The project is intangible. l There is no standardized solution process. l New projects may have little or no relationship.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
درس :مهندسي نيازمندي ها استاد: دكتر عبداله زاده دانشجو: خيرالنسا مرچانت Effectiveness of Elicitation Techniques in Distributed Requirement Engineering.
Retina: Helping Students and Instructors Based on Observed Programming Activities Chris Murphy, Gail Kaiser, Kristin Loveland, Sahar Hasan Columbia University.
University of Jyväskylä – Department of Mathematical Information Technology Computer Science Teacher Education ICNEE 2004 Topic Case Driven Approach for.
User Experience Design Goes Agile in Lean Transformation – A Case Study (2012 Agile Conference) Minna Isomursu, Andrey Sirotkin (VTT Technical Research.
Blended Courses: How to have the best of both worlds in higher education By Susan C. Slowey.
Sharif University of Technology Session # 4.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Comparing Capacity Building Frameworks for Computer Science Education in Underdeveloped Countries: An African and Asian Perspective Jandelyn PlaneIsabella.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Three Pillars: Content, Structure, Collaboration.
Configuration Issues and Efforts for Configuring Agile Approaches-Situational based Method Engineering Rinky Dwivedi, Computer Engineering Department Delhi.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
One XP Experience: Introducing Agile (XP) Software Development into a Culture that is Willing but not Ready Joe Bergin * Fred Grossman * David Leip **
International Experience for Freshman Engineering Students through Multi-National Global Design Projects Ivan E. Esparragoza The Pennsylvania State University.
Project Based Learning (PBL) Two Approaches Teacher Centered – Direct instruction driven Learner Centered - PBL.
Chapter Eight Academic Survival Skills. Study Skills  For most students time is the greatest issue.  The first rule to follow is to allow two or three.
Klein Independent School District Technology Integration Mentor Program Moving from learning to use technology...to using technology to learn Ann McMullan,
EXtreme Programming: An Introduction Presentation by: Jon Banta.
Before the Team Project Cultivate a Community of Collaborators Deb LaBelle.
PAPER PRESENTATION: EMPIRICAL ASSESSMENT OF MDE IN INDUSTRY Erik Wang CAS 703.
'Learner Autonomy through the production of a public history resource' Emma Robertson.
1 Project Information and Acceptance Testing Integrating Your Code Final Code Submission Acceptance Testing Other Advice and Reminders.
MIS 300: Introduction to Management Information Systems Yong Choi School of Business Administration CSU, Bakersfield.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
SKU3033 / SKF3033 NETWORK & SYSTEM ADMINISTRATOR.
The changing model of teaching and learning multimedia E.Rossiou, G.Pantziou Department of Informatics TEI of Athens,Hellas.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Extreme Programming.
EMBA in Food and Agribusiness Delivering Quantitative Methods Via Distance By: Allan W. Gray.
What is Asynchronous Learning? Asynchronous learning is a student-centered teaching method that uses online resources to facilitate information sharing.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
SE is not like other projects. l The project is intangible. l There is no standardized solution process. l New projects may have little or no relationship.
MITM743 Advanced Project Management Introduction To The Class.
Students seizing responsibility: A revolution of collegiality Amie Speirs, Zoe Welsh, Julia Jung and Jenny Scoles Introduction: In our project Students.
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
Extreme Programming Based on and
Lecture 4 – XP and Agile 17/9/15. Plan-driven and agile development Plan-driven development A plan-driven approach to software engineering is based around.
Using a Canadian Online Public Health Professional Development program in the Caribbean. Hilary Robinson, Public Health Agency of Canada Annella Auer,
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
The Use of Formative Evaluations in the Online Course Setting JENNIFER PETERSON, MS, RHIA, CTR DEPARTMENT OF HEALTH SCIENCES.
Project Planet Seafood. Project Overview Client Background 15 years old fresh family owned seafood business called "Planet Seafood". Initial core business.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Project Management Why do projects fail? Technical Reasons
INTRODUCTION TO ONLINE FACILITATION- DAY TWO Anna N Perry.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
MAT 735 : Meeting the Needs of Diverse Learners Problem Statement: Each year I have one or two gifted (QUEST) students in my classroom, as well as three.
Software Engineering 2004 Jyrki Nummenmaa 1 Why new software methodologies The classic waterfall-model based techniques are strongly based on the.
CS 389 Software Engineering MultiLib 2008 Final Presentation Adam Pitzer -Team Leader Paul Dumoulin - Quality Manager Miguel Vega - Wiki Master Steve Malko.
Making the Learning Process Work for You.  Skills for learning Reading for comprehension Problem solving  Organizing your learning process  Preparing.
1 Designing the HyFlex World Dr. Brian Beatty Instructional Technologies San Francisco State University AECT 2006.
Morris School District Grade 4 and 5 Math Grouping Alternative BOE Approved June 2015.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Team Hogwarts EED 515 – Dr. Raymond Brie Monday, 7pm CA2 CLASS PORTFOLIO.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Statement of Teaching Philosophy and Practice
Applied Software Project Management
Extreme Programming.
GSP 470/570 Advanced Geospatial Analysis and Modeling
Case study of the Collections Application: Identification of flaws in development lifecycle including Requirements that Led to Flawed Architecture and.
Presentation transcript:

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

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

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

COMS W4156 Advanced Software Engineering  Component-based software engineering  eXtreme Programming Main educational objectives  Allow 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

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

Overview of Study Observed approx. 90 students who took the CVN version of W4156 from 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

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.”

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.”

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

Difficulties in Pair Programming Technical challenges

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.”

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

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.”

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.”

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

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

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

Suggestions Virtual pair programming  Use a combination of tools as in [Hanks ITiCSE’05] and [Zin JISE’06] Scheduling  keep 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

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

Conclusion

A Distance Learning Approach to Teaching eXtreme Programming Chris Murphy Columbia University