Pair Programming Langr Software Solutions Originally presented to the Phoenix XP Users Group, October 2002 Last updated 2010.

Slides:



Advertisements
Similar presentations
2010 HPRCT Presentation – Optimized Human Error Evaluation June 23 rd, 2010 Presenter: Terry J. Herrmann, P.E. Associate, Structural Integrity Associates.
Advertisements

Iterative Development: Done Simply Emily Lynema NCSU Libraries Code4Lib 2010.
How to Build Conservation Partnerships that THRIVE Kristin Sherwood The Nature Conservancy How to Build Conservation Partnerships that THRIVE Kristin Sherwood.
©SHRM 2008 Managing Virtual Work Teams by Frankie S. Jones, Ph.D. Employee and Labor Relations.
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
Fit to Learn Using the Employability Skills Framework to improve your performance at College The Employability Skills Framework has been developed by business.
Alternate Software Development Methodologies
Copyright 2009  Develop the project charter: working with stakeholders to create the document that formally authorizes a project—the charter  Develop.
Pair Programming Collaboration in Software Development Process.
The Process of Interaction Design. What is Interaction Design? It is a process: — a goal-directed problem solving activity informed by intended use, target.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
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.
Team Leadership AGED 3153.
Planning. SDLC Planning Analysis Design Implementation.
An Agile View of Process
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
Simple brief By: Ayat Farhat
Pair Programming Testing 2, October 14, Administration  Project due Monday 2PM SHARP  Remember all parts of documentation (list of tests, project.
What is Business Analysis Planning & Monitoring?
Performance Management
Software Engineering Process I
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Page 1 MODEL TEST in the small GENERALIZE PROGRAM PROCESS allocated maintenance changes management documents initial requirement project infrastructure.
Seeking and providing assistance while learning to use information systems Presenter: Han, Yi-Ti Adviser: Chen, Ming-Puu Date: Sep. 16, 2009 Babin, L.M.,
Current Trends in Systems Develpment
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Generalization through a series of replicated experiments on maintainability Erik Arisholm.
WELCOME BACK!! WEDNESDAY. Response to Feedback Awesome!!! Hmmm… Increased collaboration Michael’s presentation Logic model work Coordinators who understand.
TEAMWORK A FEW NOTES. MAYBE YOUR ONLY FULL-SCALE TEAM PROJECT AT WWU … 8 weeks A beginning and an end Consistent team membership Negotiation of schedules.
Pair Programming. XP Rule of Thumb “When something is difficult or painful, do it more often until it becomes easier.”
© Copyright 2010 Aqastra1 Dedicated to Testing Excellence Summit 2010 Selecting our Testers and Measuring their Performance Susan Windsor.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
Ch 10 - Risk Management Learning Objectives You should be able to: List and describe risk management processes, inputs, outputs, and tools List and describe.
Providing an Independent Assessment of Your Project July 9, 2013 Project Management Community at NIH Cynthia Maison, PMP.
Project quality management. Introduction Project quality management includes the process required to ensure that the project satisfies the needs for which.
Code Reviews James Walden Northern Kentucky University.
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
1 Agile Experience communication and collaboration in agile software development teams Elizabeth Whitworth 7th September, 2006.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Games in Practice Prepared by RLEF, July Why Games? It’s recommended that a players development in each training session should consist of learning.
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Continual Service Improvement Methods & Techniques.
Chapter 10 Learning and Development in a Knowledge Setting
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
Beginning Software Craftsmanship Brendan Enrick Steve Smith
HO CHI MINH CITY NATIONAL UNIVERSITY HO CHI MINH CITY UNIVERSITY OF TECHNOLOGY SYSTEM ANALYSIS AND DESIGN LECTURER: Nguyen Thanh Tung.
Change Management A process for process change by Cory R. Peters Exelon PowerLabs.
Informed Traveler Program and Applications Agile / Scrum Overview Jerry Inberg.
Continuous Improvement Project (A Guideline For Sponsors)
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Testing and Debugging PPT By :Dr. R. Mall.
 Crystal methods are part of the Crystal family developed by Alistair Cockburn in the mid- 1990s  Based on observations of many teams that did not follow.
How to Develop and Instill a Future Focus in a Team
Waterfall and Agile Quality Techniques
CMGT 445 MASTER Lessons in Excellence--cmgt445master.com.
Johanna Rothman Create Technical Excellence Chapter 9
What do you need to know about XP?
Successful Website Accessibility Testing
Rest of Project Management
Introduction If you have got a call for an Agile testing interview, then congratulations are in order. You may be feeling nervous, but it sure to be felt.
Extreme Programming Extreme programming is "a lightweight methodology for small-to-medium-sized teams developing software in the face of vague or rapidly.
Sample Assessment & Governance Results
Chapter 5: New and Emerging Process Methodologies
Presentation transcript:

Pair Programming Langr Software Solutions Originally presented to the Phoenix XP Users Group, October 2002 Last updated 2010

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Pairing Two programmers Jointly developing production software Not I watch over your shoulder (That sounds like it would be waste of time!)

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Dynamics Must pair if asked Two roles in the pair: Strategic Tactical Developers switch roles frequently Rhythm

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Mechanics Comfortable workstations Accommodate two side by side Separate or shared input devices Switch pairs at least once a day 3x / day? Core pairing hours Take breaks!

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Technique Variants Ping-pong pairing I code test, you code solution; we switch Promiscuous pairing Least-skilled remains on task Promiscuous keyboarding Keyboarder switches every minute Face-to-face

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Additional Guidelines 5-minute argument rule 5-second typo rule Be attentive!

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Review Goals: Remove defects Prevent similar mistakes in future Generate useful data Pairing != formal review process Different costs, focus, outcomes

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Formal Review Challenges Disinterested parties That weren't involved in creating solution View product of others as a distraction Find mostly low-hanging fruit Anything occurring after the fact... Often doesn't get done or done well Often doesn't result in changes Pairing invests the reviewer

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Context Switching Incurs overhead cost Should drive toward cleaner solution Focus on unit test cases as doc Task owner describes current test case New partner helps flesh out test Can quickly understand how to realize shouldDoSomethingWhenThisCondition

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. General Benefits Continual review Coverage Minimized personnel dependencies Improved design Minimized defects Sustainable More rapid solutions

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Additional Benefits Improved understanding Minimizes open workspace distractions Consistent pacing Individuals less likely to bog down Team members rise to common level Increased collaboration Helps build a true team

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Management Benefits Reduced risk (better truck number!) Rapid training for new hires Interviewing criteria Problems less hidden Peer pressure Resource fluidity Cross-pollination

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Developer Benefits Awareness of other parts of system Resume building Decreased time in (review) meetings Continuous education Ability to move between teams Rapid learning as new hire The little things e.g. Eclipse shortcuts

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. But it takes twice as long… Consider: Debugging sessions Increased cost of change due to poorer design Mull time Inconsistent team abilities Learning time

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Studies Costs and Benefits of Pair Programming Laurie Williams, Alistair Cockburn Pair: 15% slower Error free code went from 70% to 85% "The Effect of Pairs in Program Design Tasks" Lui, KM, et al, IEEE Transactions, 2008 "Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise" Arisholm, E. +84% effort to perform tasks correctly More complex systems: +48% correct solutions

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Issues Pair dynamics Extrovert and Introvert mixes Expert and Novice mixes Not everyone can work this way If done well, many like it Some dislike but appreciate its benefits A small percentage will refuse Social preferences / culture Fear Personal habits

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. I Like My Space You can still have it But... building software is a team activity Find a balance between pairing and not Never mandate all or nothing

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Other Considerations Odd # of team members Core hours Team of Distributed developers Context switching overhead

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. When Not Pairing Meetings, , documents, etc. Review existing code Analyze to understand of design/defect Determine areas for potential refactoring Spike solutions Build tools or AT framework If you must work on production code: Come up with ground rules Do post-development inspections

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Where Do I Start? Discuss it with your team Agree on the values you want to derive Create an initial simple set of rules Revisit regularly Learn to pair first To learn when not to pair Influence through metrics If necessary, track pairing vs. not Re-assess value regularly Ensure a coach monitors interaction issues

Copyright © 2010 by Langr Software Solutions. All Rights Reserved. Further Reading Atwood, Jeff. Langr, Jeff. Agile Alliance articles in category Pair Programming