pair
programming
twitter : @JonJagger
email : jon@jaggersoft.com
blog : http://jonjagger.blogspot.co.uk/
charity : http://cyber-dojo.org
n
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)
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)
4
Written 1969
Published 1971
Silver Anniversary 1994
Golden Anniversary 2019
longest continuously
in-print book on software
development?
mob
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
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
when do
developers
instinctively
pair?
rubber-duck
debugging
https://en.wikipedia.org/wiki/Rubber_duck_debugging
silenttalking
images are representative only
productivity
in my experience,
pair programming is
more productive than dividing the work
between two programmers and then
integrating the results
extreme Programming explained
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 Williams
Robert Kessler
Ward Cunningham
Ron Jeffries
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.
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.
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.
if pairing increases
productivity
why is it rare?
pairing is rare
because working
alone is common!
"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
? individual assessments
? different keyboards
? different editors
? table design
? room layout
? number of computers
? tools
...
pair programming works for XP
because it encourages
communication
XP is a communal software
development discipline.
communication
we are all lousy
self evaluators
Switch by Chip and Dan Heath
feedback
programmers admit to
working harder and
smarter on programs
because they do not want
to let their partner down
Pair Programming Illuminated
energy
risk
pairing helps reduce
truck/bus number
(aka the lottery number)
interruptions
pairs are very
resistant to
interruptions
interviewing
teamwork characteristics
cannot be determined
if you interview
one at a time.
The Deming Route to Quality
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
the pair results were
more consistent...
the individuals varied
more about the mean.
consistency
Pair Programming Illuminated
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
courage
courage is the capacity
to go ahead in spite of
fear, or in spite of pain.
M. Scott Peck
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
Studies of Independence and
Submission to Group Pressure.
A Minority of One
Against a Unanimous Majority
Solomon Asch
Psychological Monographs, 1956.
7 confederates
1 subject
https://en.wikipedia.org/wiki/Asch_conformity_experiments
18 trials
in 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
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
Studies of Independence and
Submission to Group Pressure.
A Minority of Two
Against a Majority
Solomon Asch
Psychological Monographs, 1956.
presence of 1 true confederate
decreased subjects conformity to the
incorrect answer
by 75%
thanks for listening
twitter : @JonJagger
email : jon@jaggersoft.com
blog : http://jonjagger.blogspot.co.uk/
charity : http://cyber-dojo.org
n
1969 1990 2004
NorDevCon 2016 pair programming

NorDevCon 2016 pair programming

  • 1.
    pair programming twitter : @JonJagger email: jon@jaggersoft.com blog : http://jonjagger.blogspot.co.uk/ charity : http://cyber-dojo.org n
  • 2.
    a seldom questionedview 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)
  • 3.
    if egoless programmingis 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)
  • 4.
    4 Written 1969 Published 1971 SilverAnniversary 1994 Golden Anniversary 2019 longest continuously in-print book on software development?
  • 5.
  • 6.
    we were doingincremental 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
  • 7.
    we worked withpunch 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
  • 8.
  • 9.
  • 10.
  • 11.
    productivity in my experience, pairprogramming is more productive than dividing the work between two programmers and then integrating the results extreme Programming explained
  • 12.
    pairs spent about15% 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 Williams Robert Kessler Ward Cunningham Ron Jeffries
  • 13.
    an experiment byTemple 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.
  • 14.
    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.
  • 15.
    all the teamsoutperformed 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.
  • 16.
  • 17.
    pairing is rare becauseworking alone is common!
  • 18.
    "locking" occurs whenevera situation creates an environment favorable for maintaining that situation... locking occurs in all sorts of systems... especially... social Psychology of Computer Programming
  • 19.
    ? individual assessments ?different keyboards ? different editors ? table design ? room layout ? number of computers ? tools ...
  • 20.
    pair programming worksfor XP because it encourages communication XP is a communal software development discipline. communication
  • 21.
    we are alllousy self evaluators Switch by Chip and Dan Heath feedback
  • 22.
    programmers admit to workingharder and smarter on programs because they do not want to let their partner down Pair Programming Illuminated energy
  • 23.
    risk pairing helps reduce truck/busnumber (aka the lottery number)
  • 24.
  • 25.
    interviewing teamwork characteristics cannot bedetermined if you interview one at a time. The Deming Route to Quality
  • 26.
    i felt itwas unwise to allow players to practice by themselves. Always I wanted them to be interacting with their teammates. Wooden on Leadership interaction
  • 27.
    the pair resultswere more consistent... the individuals varied more about the mean. consistency Pair Programming Illuminated
  • 28.
    widespread use ofpair programming involves a cultural shift in values of the organization - away from individual and toward team recognition and goals. Pair Programming Illuminated team
  • 29.
    courage courage is thecapacity to go ahead in spite of fear, or in spite of pain. M. Scott Peck
  • 30.
    if people programsolo 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
  • 31.
    Studies of Independenceand Submission to Group Pressure. A Minority of One Against a Unanimous Majority Solomon Asch Psychological Monographs, 1956.
  • 32.
  • 33.
    18 trials in trial1 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
  • 34.
    75% of subjectsgave the incorrect answer in at least 1 trial the subject conformed to the incorrect answer in all 12 trials 36% of the time
  • 35.
    Studies of Independenceand Submission to Group Pressure. A Minority of Two Against a Majority Solomon Asch Psychological Monographs, 1956.
  • 36.
    presence of 1true confederate decreased subjects conformity to the incorrect answer by 75%
  • 37.
    thanks for listening twitter: @JonJagger email : jon@jaggersoft.com blog : http://jonjagger.blogspot.co.uk/ charity : http://cyber-dojo.org n
  • 38.