We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Thank you!
Presentation is loading. Please wait.
Published bySteven Carter
Modified over 3 years ago
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 1 - 2 Distributed developers Context switching overhead
Copyright © 2010 by Langr Software Solutions. All Rights Reserved. When Not Pairing Meetings, email, 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 http://en.wikipedia.org/wiki/Pair_programming Atwood, Jeff. http://www.codinghorror.com/blog/archives/000999.html Langr, Jeff. http://langrsoft.com/articles/pairing.shtml Agile Alliance articles in category Pair Programming
Beginning Software Craftsmanship Brendan Enrick Steve Smith
Pair Programming Collaboration in Software Development Process.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Pair Programming Testing 2, October 14, Administration Project due Monday 2PM SHARP Remember all parts of documentation (list of tests, project.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
The Process of Interaction Design. What is Interaction Design? It is a process: — a goal-directed problem solving activity informed by intended use, target.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Ch 10 - Risk Management Learning Objectives You should be able to: List and describe risk management processes, inputs, outputs, and tools List and describe.
Simple brief By: Ayat Farhat
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Agile Software Development What is Agile? And How are we implementing Agile?
Fit to Learn Using the Employability Skills Framework to improve your performance at College The Employability Skills Framework has been developed by business.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Iterative Development: Done Simply Emily Lynema NCSU Libraries Code4Lib 2010.
An Agile View of Process
© Copyright 2010 Aqastra1 Dedicated to Testing Excellence Summit 2010 Selecting our Testers and Measuring their Performance Susan Windsor.
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Games in Practice Prepared by RLEF, July Why Games? It’s recommended that a players development in each training session should consist of learning.
What is Business Analysis Planning & Monitoring?
Generalization through a series of replicated experiments on maintainability Erik Arisholm.
Copyright 2009 Develop the project charter: working with stakeholders to create the document that formally authorizes a project—the charter Develop.
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
COMP 3663 DANIEL L. SILVER, PHD IMPLEMENTATION 2.
Current Trends in Systems Develpment
March 25, 2002R McFadyen a lightweight approach to software development. about 5 years old has been used at: Bayerische Landesbank, Credit Swiss.
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.
What Do I Want to Be? What can I become? ANYTHING, with a plan!
The Software Development Process
0 Tactics and Technologies for Stakeholder Engagement With Keith Ellis CEO, Enfocus Solutions.
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.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Challenges in Agile Unclear project scope, multiple iterations, minimal documentation, early and frequent testing needs and active stakeholder involvement.
Pair Programming. XP Rule of Thumb “When something is difficult or painful, do it more often until it becomes easier.”
13-Jun-15 Extreme Programming. 2 Software engineering methodologies A methodology is a formalized process or set of practices for creating software An.
Lean Software Development (Can Çetin) Mary Poppendieck, Poppendieck.LLC Michael A. Cusumano, Massachusetts Institute of Technology.
Dr. Ann Fruhling Ms. Beth Schmidt Mr. Alvin Tarrell.
1 Quality of Service Quality of Service Dropped connections Unavailable websites Network outages & Delays Goal is to reduce user frustration.
Agile Awareness Workshop 2008 Flavours of Agile II eXtreme Programming V I K A S H A Z R A T I June 14' 2008.
Building Strong Library Associations | Regional Convenings DAY 2 Session 6 How will I get support for my proposal? External relationships.
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.,
Alternate Software Development Methodologies
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
This chapter is extracted from Sommerville’s slides. Text book chapter
List 3 – 5 guiding principles that will serve as foundation and guide rails for the project. See slide 4 for further details ObjectivesGuiding PrinciplesKey.
© 2017 SlidePlayer.com Inc. All rights reserved.