Pair Programming. What s in it for me? Paper by A. Begel and N. Nagappan, Microsoft Research published in ESEM Presentation by Martin Senn,

Similar documents
IT4305: Rapid Software Development Part 2: Structured Question Paper

Task Types. Duration, Work and Units Prepared by

IN THIS UNIT YOU LEARN HOW TO: SPEAKING 1 Work in pairs. Discuss the questions. 2 Work with a new partner. Discuss the questions.

Changing User Attitudes to Reduce Spreadsheet Risk

Team Dispersal. Some shaping ideas

Visit us at:

Faculty Schedule Preference Survey Results

How we look into complaints What happens when we investigate

Two heads can be better than one

Stacks Teacher notes. Activity description. Suitability. Time. AMP resources. Equipment. Key mathematical language. Key processes

Testing A Moving Target: How Do We Test Machine Learning Systems? Peter Varhol Technology Strategy Research, USA

LEGO MINDSTORMS Education EV3 Coding Activities

How to make an A in Physics 101/102. Submitted by students who earned an A in PHYS 101 and PHYS 102.

Interpretive (seeing) Interpersonal (speaking and short phrases)

Data Modeling and Databases II Entity-Relationship (ER) Model. Gustavo Alonso, Ce Zhang Systems Group Department of Computer Science ETH Zürich

Activities, Exercises, Assignments Copyright 2009 Cem Kaner 1

Software Maintenance

Deploying Agile Practices in Organizations: A Case Study

Major Milestones, Team Activities, and Individual Deliverables

Pair Programming. Spring 2015

Math Pathways Task Force Recommendations February Background

Measurement & Analysis in the Real World

Measures of the Location of the Data

HIGH SCHOOL SPECIAL NEEDS STUDENTS ATTITUDES ABOUT INCLUSION. By LaRue A. Pierce. A Research Paper

RESOLVING CONFLICT. The Leadership Excellence Series WHERE LEADERS ARE MADE

Every student absence jeopardizes the ability of students to succeed at school and schools to

A cognitive perspective on pair programming

Our installer John Stoddard was polite, courteous, and efficient. The order was exactly as we had placed it and we are very satisfied.

GROUP COMPOSITION IN THE NAVIGATION SIMULATOR A PILOT STUDY Magnus Boström (Kalmar Maritime Academy, Sweden)

The open source development model has unique characteristics that make it in some

Moodle Student User Guide

Red Flags of Conflict

- SAMPLE ONLY - PLEASE DO NOT COPY

Rule Learning With Negation: Issues Regarding Effectiveness

Introduction to the HFLE course

PROJECT MANAGEMENT AND COMMUNICATION SKILLS DEVELOPMENT STUDENTS PERCEPTION ON THEIR LEARNING

Pair Programming in Introductory Programming Labs

Moderator: Gary Weckman Ohio University USA

The Future of Consortia among Indian Libraries - FORSA Consortium as Forerunner?

Myers-Briggs Type Indicator Team Report

Responding to Disasters

Including the Microsoft Solution Framework as an agile method into the V-Modell XT

The Heart of Philosophy, Jacob Needleman, ISBN#: LTCC Bookstore:

Mastering Team Skills and Interpersonal Communication. Copyright 2012 Pearson Education, Inc. publishing as Prentice Hall.

GETTING THE MOST OF OUT OF BRAINSTORMING GROUPS

MENTORING. Tips, Techniques, and Best Practices

Rule Learning with Negation: Issues Regarding Effectiveness

Software Security: Integrating Secure Software Engineering in Graduate Computer Science Curriculum

OCR for Arabic using SIFT Descriptors With Online Failure Prediction

Cal s Dinner Card Deals

The Flaws, Fallacies and Foolishness of Benchmark Testing

Training Pack. Kaizen Focused Improvement Teams (F.I.T.)

Fundraising 101 Introduction to Autism Speaks. An Orientation for New Hires

Execution Plan for Software Engineering Education in Taiwan

The Foundations of Interpersonal Communication

Dar es Salaam Institute of Technology

Generating Test Cases From Use Cases

DO YOU HAVE THESE CONCERNS?

Coordination Challenges in Global Software Development

Ministry of Education General Administration for Private Education ELT Supervision

Diagnostic Test. Middle School Mathematics

Alberta Police Cognitive Ability Test (APCAT) General Information

Linking the Common European Framework of Reference and the Michigan English Language Assessment Battery Technical Report

ARSENAL OF DEMOCRACY

Mandarin Lexical Tone Recognition: The Gating Paradigm

Being Extreme in the Classroom: Experiences Teaching XP

Critical Thinking in Everyday Life: 9 Strategies

ANALYSIS: LABOUR MARKET SUCCESS OF VOCATIONAL AND HIGHER EDUCATION GRADUATES

How to Judge the Quality of an Objective Classroom Test

1.1 Examining beliefs and assumptions Begin a conversation to clarify beliefs and assumptions about professional learning and change.

Undergraduates Views of K-12 Teaching as a Career Choice

How to make your research useful and trustworthy the three U s and the CRITIC

What to Do When Conflict Happens

Calculators in a Middle School Mathematics Classroom: Helpful or Harmful?

Statistical Analysis of Climate Change, Renewable Energies, and Sustainability An Independent Investigation for Introduction to Statistics

Rubric Assessment of Mathematical Processes in Homework

A Coding System for Dynamic Topic Analysis: A Computer-Mediated Discourse Analysis Technique

AC : DEVELOPMENT OF AN INTRODUCTION TO INFRAS- TRUCTURE COURSE

Professors will not accept Extra Credit work nor should students ask a professor to make Extra Credit assignments.

Artificial Neural Networks written examination

International Examinations. IGCSE English as a Second Language Teacher s book. Second edition Peter Lucantoni and Lydia Kellas

BEST OFFICIAL WORLD SCHOOLS DEBATE RULES

Khairul Hisyam Kamarudin, PhD 22 Feb 2017 / UTM Kuala Lumpur

HAVE YOU ever heard of someone

Electric Power Systems Education for Multidisciplinary Engineering Students

INTERMEDIATE ALGEBRA PRODUCT GUIDE

EMPLOYEE CALENDAR NOTES

Massachusetts Department of Elementary and Secondary Education. Title I Comparability

IMGD Technical Game Development I: Iterative Development Techniques. by Robert W. Lindeman

Innovative Methods for Teaching Engineering Courses

Online ICT Training Courseware

CPMT 1347 Computer System Peripherals COURSE SYLLABUS

Page 1 of 11. Curriculum Map: Grade 4 Math Course: Math 4 Sub-topic: General. Grade(s): None specified

Building People. Building Nations. GUIDELINES for the interpretation of Kenyan school reports

Introduction to Questionnaire Design

WHAT ARE VIRTUAL MANIPULATIVES?

A process by any other name

ALL-IN-ONE MEETING GUIDE THE ECONOMICS OF WELL-BEING

By Merrill Harmin, Ph.D.

Administrative Services Manager Information Guide

Transcription:

Pair Programming What s in it for me? Paper by A. Begel and N. Nagappan, Microsoft Research published in ESEM 2008 Presentation by Martin Senn, Software Engineering Seminar 2010 March 7th, 2010 1

Pair Programming Definition: Practice in which two programmers work collaboratively at one computer on the same design, algorithm or test. 2

Pair Programming Driver actively types at computer writes code, UML, design documents, etc. Navigator watches the work of the driver identifies defects, errors, makes suggestions The two collaborate, discuss and brainstorm 3

Pair Programming Pair programming wastes two programmers to do the job of one! 4

Pair Programming Pair programming results in fewer bugs and better quality code. 5

Pair Programming in theory part of the Extreme Programming Methodology should give the following benefits: 1. ) 2. ) Better quality: many mistakes/bugs are found early in the development process (as they are being typed) Reduced cost: bugs are very expensive and as they can be found early, the development cost is reduced early research results indicate: The code and design quality is better, coding needs more time, but only about 15%, but the cost for testing and quality assurance is reduced. The Costs and Benefits of Pair Programming, Williams et. al., 2001 6

Pair Programming from one user s perspective a friend of mine who practiced pair programming t0ld me: 1. ) 2. ) In the pair we produced less code and less bugs. The code quality was really better! We not only found bugs early but also could identify wrong approaches and designs early The risk of getting lost is much smaller, as each programmer has a different perspective 4. ) 5. ) But: Both programmers should have the same skill level e.g. regarding design patterns Important: The programmers should reverse the roles of driver and navigator 7

Pair Programming in academic setting Previous research on pair programming mostly in this area Surveys of students of different universities Perceived Benefits: students can learn from each other students can develop interpersonal skills Findings: pairing should be done between students of similar or equal skill level! pair programming students produce better quality code and better designs Time consumption ranges from half the time to twice the time of a single programmer! 8

Pair Programming in industrial setting Only little research on pair programming in industry What previous results indicate: learning is not the primary goal (as in the academic setting) Previous Findings pair programming developers may not necessarily produce better quality code! The effort to complete tasks correctly is in some cases reduced, sometimes increased! 9

The Paper: Paper based on asking developers directly 487 survey participants, from around the world 21% of survey respondents have practiced pair programming (only) in the past 3.5% practice it in current projects Only 106 participants had pair programming experience (these are the ones we re interested in) 68% developers 21% testers 8% managers Rest: researchers, etc. 10

Survey: Software engineers had to answer questions about: perceived benefits and problems characteristics of a good pair programming partner and team influence on quality and productivity First result: 11

Survey results Perceived Benefits 1. ) 2.) 3.) 4.) 5.) Reducing bugs: bugs are found and fixed earlier Higher quality code: improved software quality because of constant code review and combined knowledge and skills Spread code understanding: spread knowledge about design and code across the team Learn from partner: each partner has a slightly different skill set and knowledge Better design: different opinions help to see problems from different viewpoints and to think about various approaches and alternatives 66% 48% 42% 42% 30% 12

Survey results Perceived Problems 1. ) 2.) 3.) 4.) 5.) Cost: people are being paid to do the job of one, needing twice as many people! Scheduling: the two partners need the same, overlapping schedule Clash of personality: project may suffer from bad pairing, as performance depends on compatibility Disagreement: it s hard to find a consensus in ideas, wasting times in discussions Skill differences: people are worried that they are paired with a partner who is not as smart 79% 31% 25% 13

Survey results Characteristics of a good partner 1. ) 2.) 3.) Complementary skillset: your partner should have different ideas, opinions and a different background, the skillset should be overlapping but not identical! Flexibility: your partner is openminded, open to new ideas and can adapt to different styles Good communication skills: your partner is a good listener, should have good interpersonal skills 14

Survey results Characteristics of a good team 1. ) 2.) Good communication skills: a team needs compatible communication styles Complementary skills: partners should have complementary skills and knowledge 3.) 4.) Compatible personalities: partners are not competing, discuss, share ideas and are tolerant Efficiency: partners minds work similar and hence they don t argue too much 15

Survey results Main results I Pair programming wastes two programmers to do the job of one! 16

Survey results Main results II Pair programming results in fewer bugs and better quality code. 17

Pair Programming Summary of findings: what was confirmed: Primary perceived benefit: higher quality code Primary perceived problem: higher cost what we learned: Most programmers want to be paired with someone with complementary skills, who is flexible and has a compatible personality! contrast to academic setting! Programmers want to learn from each other same as in academic setting! 18

Pair Programming Conclusion: 1 2 3 Ray Good news: Pair programming can have the mentioned benefits! Bad news: Also in order to be (cost) efficient the team and individual partners must have the mentioned qualities! of hope : If people are encouraged to work together, they can learn to work together and become an efficient team! 19