Top Banner
pair programming twitter : @JonJagger email : [email protected] blog : http://jonjagger.blogspot.co.uk/ charity : http://cyber-dojo.org \n
39

NorDevCon 2016 pair programming

Jan 15, 2017

Download

Software

Jon Jagger
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: NorDevCon 2016 pair programming

pair programming

twitter : @JonJaggeremail : [email protected]

blog : http://jonjagger.blogspot.co.uk/charity : http://cyber-dojo.org

\n

Page 2: NorDevCon 2016 pair programming

a seldom questioned view of programming - a view which this

book will spend a great deal of time questioning. That view is

that programming is an individual activity...

individual

from... (see slide 4)

Page 3: NorDevCon 2016 pair programming

if egoless programming is used, everyone in the group will have the opportunity to examine the work of everyone else at some time, thereby tending to prevent the establishment of strong hierarchy.

team

from... (see slide 4)

Page 4: NorDevCon 2016 pair programming

4

Written 1969

Published 1971

Silver Anniversary 1994

Golden Anniversary 2019

longest continuously in-print book on software

development?

Page 5: NorDevCon 2016 pair programming

mob programming

Page 6: NorDevCon 2016 pair programming

we were doing incremental development as early as 1957... where the technique used was, as far as I can tell, indistinguishable from XP

http://www.craiglarman.com/wiki/downloads/misc/history-of-iterative-larman-and-basili-ieee-computer.pdf

Jerry Weinberg

Page 7: NorDevCon 2016 pair programming

we worked with punch cards and printouts... with a

turnaround time of a week or so as we airfreighted decks of cards from New York to Los

Angeles.personal email from Jerry

Page 8: NorDevCon 2016 pair programming

when do developers instinctively pair?

Page 9: NorDevCon 2016 pair programming

rubber-duck debugging

https://en.wikipedia.org/wiki/Rubber_duck_debugging

Page 10: NorDevCon 2016 pair programming

silenttalking

images are representative only

Page 11: NorDevCon 2016 pair programming

productivityin my experience, pair programming is more productive than dividing the work between two programmers and then integrating the results

extreme Programming explained

Page 12: NorDevCon 2016 pair programming

pairs spent about 15% more time on the program than the individuals*

the resulting code has about 15% fewer defects

the pairs consistently implemented the same functionality in fewer lines of code

most of the programmers enjoyed programming

collaboratively

http://collaboration.csc.ncsu.edu/laurie/Papers/ieeeSoftware.PDF

strengthening the case for pair programming

Laurie WilliamsRobert Kessler

Ward CunninghamRon Jeffries

Page 13: NorDevCon 2016 pair programming

an experiment by Temple University... Professor Nosek studied 15 full-time, experienced programmers working for 45 minutes on a challenging problem, important to their organization, in their own environment, and with their own equipment.Nosek, J. T. (1998). The Case for Collaborative Programming. Communications of the ACM. March 1998: 105-108.

Page 14: NorDevCon 2016 pair programming

five worked individually, ten worked collaboratively in five pairs. Conditions and materials used were the same for both ... groups.

Nosek, J. T. (1998). The Case for Collaborative Programming. Communications of the ACM. March 1998: 105-108.

Page 15: NorDevCon 2016 pair programming

all the teams outperformed the individual programmers, enjoyed the problem-solving process more, and had greater confidence in their solutions... producing better algorithms and code in less time (40%)Results statistically significant using two-sided t-test.

Page 16: NorDevCon 2016 pair programming

if pairing increases productivity

why is it rare?

Page 17: NorDevCon 2016 pair programming

pairing is rare because working alone is common!

Page 18: NorDevCon 2016 pair programming

"locking" occurs whenever a situation creates an

environment favorable for maintaining that situation...

locking occurs in all sorts of systems... especially... social

Psychology of Computer Programming

Page 19: NorDevCon 2016 pair programming

? individual assessments ? different keyboards ? different editors ? table design ? room layout ? number of computers ? tools ...

Page 20: NorDevCon 2016 pair programming

pair programming works for XP because it encourages

communication

XP is a communal software development discipline.

communication

Page 21: NorDevCon 2016 pair programming

we are all lousy self evaluatorsSwitch by Chip and Dan Heath

feedback

Page 22: NorDevCon 2016 pair programming

programmers admit to working harder and

smarter on programs because they do not want

to let their partner downPair Programming Illuminated

energy

Page 23: NorDevCon 2016 pair programming

riskpairing helps reduce truck/bus number (aka the lottery number)

Page 24: NorDevCon 2016 pair programming

interruptionspairs are very

resistant to interruptions

Page 25: NorDevCon 2016 pair programming

interviewingteamwork characteristics cannot be determined if you interview one at a time.The Deming Route to Quality

Page 26: NorDevCon 2016 pair programming

i felt it was unwise to allow players to practice by

themselves. Always I wanted them to be interacting with their

teammates.Wooden on Leadership

interaction

Page 27: NorDevCon 2016 pair programming

the pair results were more consistent... the individuals varied more about the mean.

consistency

Pair Programming Illuminated

Page 28: NorDevCon 2016 pair programming

widespread use of pair programming involves a

cultural shift in values of the organization - away from

individual and toward team recognition and goals.

Pair Programming Illuminated

team

Page 29: NorDevCon 2016 pair programming

couragecourage is the capacity to go ahead in spite of fear, or in spite of pain.M. Scott Peck

Page 30: NorDevCon 2016 pair programming

if people program solo they are more likely to make mistakes,

more likely to overdesign, more likely to blow off the other

practises, particularly under pressure

extreme Programming explained

quality

Page 31: NorDevCon 2016 pair programming

Studies of Independence and Submission to Group Pressure. A Minority of One Against a Unanimous MajoritySolomon AschPsychological Monographs, 1956.

Page 32: NorDevCon 2016 pair programming

7 confederates 1 subject

https://en.wikipedia.org/wiki/Asch_conformity_experiments

Page 33: NorDevCon 2016 pair programming

18 trialsin trial 1 and trial 2 the

7 confederates and the subject gave the obviously right answer

in the remaining 16 trials the 7 confederates gave the same

obviously wrong answer 12 times

Page 34: NorDevCon 2016 pair programming

75% of subjects gave the incorrect answer in at least 1 trial

the subject conformed to the incorrect answer in all 12 trials

36% of the time

Page 35: NorDevCon 2016 pair programming

Studies of Independence and Submission to Group Pressure. A Minority of Two Against a MajoritySolomon AschPsychological Monographs, 1956.

Page 36: NorDevCon 2016 pair programming

presence of 1 true confederate decreased subjects conformity to the

incorrect answer by 75%

Page 37: NorDevCon 2016 pair programming

thanks for listening

twitter : @JonJaggeremail : [email protected]

blog : http://jonjagger.blogspot.co.uk/charity : http://cyber-dojo.org

\n

Page 38: NorDevCon 2016 pair programming

1969 1990 2004

Page 39: NorDevCon 2016 pair programming