CS 3500 L12pp - 1 The Benefits of Pair Programming Robert Kessler School of Computing University of Utah Special thanks to Laurie Williams North Carolina.

Slides:



Advertisements
Similar presentations
Directorate of Human Resources Learner experience of e-learning Rhona Sharpe Oxford Brookes University
Advertisements

MiMeG – The MixedMediaGrid NCeSS node University of Bristol & Kings College London.
Pair Programming: Why Have Two Do the Work of One from Laurie Williams North Carolina State University.
1 Estimating Software Development Using Project Metrics.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Construction
Tracking an Innovation in Introductory CS Education from a Research University to a Two-Year College Allison Elliott Tew and Mark Guzdial Georgia Institute.
Gild Project – Explorations….. CSc 115/160 (S01) Pair Programming.
March 25, 2002R McFadyen a lightweight approach to software development. about 5 years old has been used at: Bayerische Landesbank, Credit Swiss.
Important concepts in software engineering The tools to make it easy to apply common sense!
Potions Class Assistant Professor James Atlas (on loan from the University of Delaware)
Pair Programming Two Programmers sit at one workstation Two Programmers sit at one workstation.
2000 by Prentice-Hall, Inc1 Chapter 17 - Human Resources in Strategic Planning  TQM recognizes importance of employees  Education & training viewed as.
Pair Programming Collaboration in Software Development Process.
Fundamentals of Software Development 1Slide 1 Pair Programming: What is it? What is it?What is it? Two programmers working side-by-side, collaborating.
CS 410 Applied Algorithms Applied Algorithms Lecture #1 Introduction, class information, first problems.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
COMP4710 Senior Design Software Development Process.
Using A Defined and Measured Personal Software Process Watts S. Humphrey CS 5391 Article 8.
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Case Studies Instructor Paulo Alencar.
Chapter 13: Defect Prevention & Process Improvement
+ Hybrid Roles in Your School If not now, then when?
TIME MANAGEMENT Time is a created thing. To say “I don’t have time” is like saying, “I don’t want to.” -Lao-Tzu.
Pair Programming Testing 2, October 14, Administration  Project due Monday 2PM SHARP  Remember all parts of documentation (list of tests, project.
TELEPHONE INTERVIEWS : Telephone Interviews are very popular in modern fast work culture. Telephone interviews are often conducted by employers in the.
CFDLS © 2014 Central Florida Diversity Learning Series 2014 Evaluation Summary of Session 1 on January 28 th Recruitment, Retention and Retirement: Redefining.
K-12 Mathematics Common Core State Standards. Take 5 minutes to read the Introduction. Popcorn out one thing that is confirmed for you.
TAKING CONTROL OF THE KNOWLEDGE FLOW BY USING SELF-SERVICE AND KCS - Rob Matheson.
Linda Werner.  Learn about using pair programming to 1. promote learning 2. increase students’ confidence 3. Increase students’ enjoyment  Leave with.
Pair Programming Sarah Heckman Teaching Associate Professor NC State Tapestry Workshop Some materials.
Partners for Success: A Model for Tutoring Programs.
1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013.
Experiences using SPARK in an Undergraduate CS Course Dr. Anthony S. Ruocco Roger Williams University Attendance made possible through.
Research in Computing สมชาย ประสิทธิ์จูตระกูล. Success Factors in Computing Research Research Computing Knowledge Scientific MethodAnalytical Skill Funding.
Pair Programming in the Classroom Mark Sherriff University of Virginia June 29, 2011 Some material courtesy of Laurie Williams, NCSU Tapestry 2011.
ISO Audits !!! Bogac Ozgen GyroFalco Ltd. v.s.. What is certification? But really, what is it? It gives other companies assurance about your attitude.
 2009 Pearson Education, Inc. All rights reserved. 1 Pair Programming Most slides courtesy of Ms. Stephany Coffman-Wolph Some slides with minor modification.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Pair Programming (PP). What Is Pair Programming [1] XP (Extreme Programming) practise ”Two programmers working side-by-side, collaborating on the same.
Systems Analysis and Design in a Changing World, Fourth Edition
Using Service Level Agreements to Manage Outsourcers Dr. Adam Kolawa CEO Parasoft.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Everyone Communicates Few Connect
CS 110: Introduction to Computer Science Introduction to Collaborative Learning and Programming Practices.
February 15, 2004 Software Risk Management Copyright © , Dennis J. Frailey, All Rights Reserved Simple Steps for Effective Software Risk Management.
Modeling molecular evolution Jodi Schwarz and Marc Smith Vassar College Biol/CS353 Bioinformatics.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
STUDENT LED CONFERENCES SPRING 2015 BEN IVERSON. Cover Letter Science this year has covered a wide range of topics. We started the year with learning.
Experimentation in Computer Science (Part 2). Experimentation in Software Engineering --- Outline  Empirical Strategies  Measurement  Experiment Process.
Introduction to Computing Concepts Note Set 5. Pair Programming* Used in Software development 2 developers working at the same computer ▫ Driver – Person.
Chapter 15: Analytical evaluation. Aims: Describe inspection methods. Show how heuristic evaluation can be adapted to evaluate different products. Explain.
Another Person’s Eye Gaze as a Cue in Solving Programming Problems Randy Stein Susan Brennan Stony Brook University.
Usability Evaluation or, “I can’t figure this out...do I still get the donuts?”
MNCPA Career Workshops presents …. Interviewing to Impress 1.Importance of First Impressions 2.The Interview  Definition  Goal 3.Preparation  Documented.
Pair Programming in the Classroom Mark Sherriff University of Virginia July 16, 2009 Some material courtesy of Laurie Williams, NCSU Tapestry 2009.
Present by Monvorath Phongpaibul “Molly”
Why Do We Measure? assess the status of an ongoing project
Pair Programming in the Classroom
Analysis of Software Usability Evaluation Methods
Extreme Programming Iterative programming Agile programming
Pair Programming.
Why Do We Measure? assess the status of an ongoing project
Machine Learning for Actuaries
Extreme Programming Extreme programming is "a lightweight methodology for small-to-medium-sized teams developing software in the face of vague or rapidly.
Introduction to Collaborative Learning and Programming Practices
Human-Computer Interface (HCI)
Why Do We Measure? assess the status of an ongoing project
Evaluation.
Why Do We Measure? assess the status of an ongoing project
Extreme Programming (and Pair Programming)
Presentation transcript:

CS 3500 L12pp - 1 The Benefits of Pair Programming Robert Kessler School of Computing University of Utah Special thanks to Laurie Williams North Carolina State University

CS 3500 L12pp - 2 What Is Pair Programming? "Pair programming is a simple, straightforward concept. Two programmers work side-by-side at one computer, continuously collaborating on the same design, algorithm, code, and test. It allows two people to produce a higher quality of code than that produced by the summation of their solitary efforts."

CS 3500 L12pp - 3 This Is Pair Programming

CS 3500 L12pp - 4 This is NOT Pair Programming

CS 3500 L12pp - 5 Pair Programming Has Been Around For a LONG TIME! … John von Neumann, recognized his own inadequacies and continuously asked others to review his work. Fred Brooks and many others are pair programming, though they don’t know there is a name for it.

CS 3500 L12pp - 6 Does Pair Programming Really Work? l Empirical study by Laurie Williams at the university of Utah l Practice: Summer 1999 – 20 students (sophomore/junior) »All worked collaboratively – Generated more anecdotal/qualitative evidence l Solo vs. pair: Fall 1999 – 41 students (junior/senior) »28 worked collaboratively »13 worked individually – Software development process was controlled »The only experimental variable: pair-programming – Quantitative: time, quality, enjoyment, confidence

CS 3500 L12pp - 7 Findings #1 - Quality

CS 3500 L12pp - 8 Findings #2 - Time

CS 3500 L12pp - 9 Findings #3 and #4 – Enjoyment and Confidence

CS 3500 L12pp - 10 How Does This Work? l Pair-Pressure – Keep each other on task and focused – Don’t want to let partner down – “Embarrassed” to not follow the prescribed process – Parkinson’s law “work expands to fill all available time.” l Pair-Think – Distributed cognition: “searching through larger spaces of alternatives” »Have shared goals and plans »Bring different prior experiences to the task »Different access to task relevant information »Must negotiate a common shared of action l Pair-Relaying – Each, in turn, contributes to the best of their knowledge and ability – Then, sit back and think while their partner fights on

CS 3500 L12pp - 11 How Does This Work (Part Two)? l Pair-Reviews – Continuous design and code reviews – Ultimate in defect removal efficiency – Removes programmers distaste for reviews »80% of all (solo) programmers don’t do them regularly or at all l Debug by describing – Tell it to the Furby l Pair-Learning – Continuous reviews  learn from partners techniques, knowledge of language, domain, etc. – “Between the two of us, we knew it or could figure it out” – Apprenticeship – Defect prevention always more efficient than defect removal

CS 3500 L12pp - 12 Research Findings to Date - 1 l Strong anecdotal evidence from industry – “We can produce near defect-free code in less than half the time.” l Empirical study – Pairs produced higher quality code »15% less defects (difference statistically significant) »Observed – pairs produced smaller (LOC) programs – Pairs completed their tasks in about half the time »58% of elapsed time (difference NOT statistically significant) – Most programmers reluctantly embark on pair programming »Pairs enjoy their work more (92%) »Pairs feel more confident in their work products (96%)

CS 3500 L12pp - 13 Research Findings - 2 l Several educational studies underway – University of California, Santa Cruz; North Carolina State University – What about pair learning? »Anecdotal says that it works well – What are the long-term issues? »If you learn as a pair, can you work as a solo? l Distributed pair programming studies underway – North Carolina State University; University of North Carolina-Chapel Hill – Early results: distributed pair programming is viable – My experience: »Need to meet and know your pair »Need a good tool like VNC and telephone »Video not important

CS 3500 L12pp - 14 Issues: Workplace Layout Bad Better Best

CS 3500 L12pp - 15 Issues: Partner Picking Principles Expert paired with an Expert Expert paired with a Novice Novices paired togetherProfessional Driver ProblemCulture

CS 3500 L12pp - 16 Issues: Pair Rotation l Ease staff training and transition l Knowledge management/Reduced product risk l Enhanced team building

CS 3500 L12pp - 17 Expected Benefits of Pair Programming l Higher product quality l Improved cycle time l Enhanced learning l Pair rotation – Ease staff training and transition – Knowledge management/reduced product risk – Enhanced team building l Increased programmer satisfaction

CS 3500 L12pp - 18 More Information l Bob Kessler l Laurie Williams l l