Slide 1

Slide 1 text

T W O H E A D S A R E B E T T E R T H A N O N E E L L E M E R E D I T H » @ A E M E R E D I T H » B L A C K M I L L . C O

Slide 2

Slide 2 text

W H AT G E T ' S I N T H E WAY I S F E A R

Slide 3

Slide 3 text

C O N F I D E N T H U M I L I T Y – A N G E L A H A R M S

Slide 4

Slide 4 text

“It’s about… having the courage to say, “I don’t know what’s going on”. And so we need to do this again or figure it out or talk about it. Courage to grab the keyboard [or] give it up… whether you are junior or a senior, it’s your job to take the lead into teaching the other person how to collaborate because collaboration is a beautiful thing but most people don’t know how to do it.’’

Slide 5

Slide 5 text

Psychological safety is ‘‘a sense of confidence that the team will not embarrass, reject or punish someone for speaking up… It describes a team climate characterized by interpersonal trust and mutual respect in which people are comfortable being themselves.’’

Slide 6

Slide 6 text

B E N E F I T S • Improves code design quality • Reduces bugs • Enhances technical skills (become a better programmer) • Improves transfer of technical skills • Improves team communications • Improves diffusion of knowledge among the team • Reduces staffing risk • Improves focus

Slide 7

Slide 7 text

B E N E F I C I A L S K I L L S • Prefer talking over thinking • Listening • Being friendly • Being gentle • Being curious, not passive

Slide 8

Slide 8 text

T O M A K E Y O U R PA I R I N G S E S S I O N S U C C E S S F U L , F O C U S O N T H E C O D E

Slide 9

Slide 9 text

W H E N PA I R S A R E E N G A G E D , F U L LY C O L L A B O R AT I V E , N O T D I S T R A C T E D = > g o o d p a i r i n g s e s s i o n

Slide 10

Slide 10 text

B E F O R E H A N D • Establish a communication channel if remote pairing • Personal check-in • Work approach check-in • Agree on tools • Discuss Git workflow • Agree on technique • Communicate your expectations so that you’re on the same page

Slide 11

Slide 11 text

A F T E R WA R D • Hold a retrospective

Slide 12

Slide 12 text

PA I R I N G E T I Q U E T T E • Share everything equally: no keyboard hogging • Turn off notifications/close apps to remove distractions • No social surfing, checking Twitter, Facebook, or email • Stop when you’re tired - take many breaks • When you see someone make a typo, wait • When talking about code, always refer to line number and file name • When disagreeing, talk in terms of benefit • When you're the navigator, don't dictate the code

Slide 13

Slide 13 text

T E C H N I Q U E S • Driver-Navigator • Active participation and constant communication is crucial • Tip: switch roles throughout the session • Potential pitfall: navigator stops paying attention, and the driver starts doing their own thing

Slide 14

Slide 14 text

T E C H N I Q U E S • Ping pong • Especially effective when writing tests • Tip: control can be passed back and forth frequently ,but in order to target what each person needs in their learning, it requires communication • Potential pitfall: not setting expectations ahead of time could make it more difficult to decide who is doing what

Slide 15

Slide 15 text

T E C H N I Q U E S • Distributed Pairing (remote) • Tips: invest in a good headset; Become more comfortable with the tools; Be more vocal about when to switch driver and navigator roles • Potential pitfall: technical issues are common, so test your tools ahead of time!

Slide 16

Slide 16 text

I D E A L D E S K S E T U P • 2 monitors, 2 keyboards, 2 mice/trackpads, 1 computer • Lowest denominator text editor • Shared `.vimrc`

Slide 17

Slide 17 text

R E M O T E PA I R I N G T O O L S • tmate.io (+ Skype or Google Hangouts) • `brew install tmate` • `tmate` • `ctrl d` to stop session • Screen Hero

Slide 18

Slide 18 text

PA I R I N G W I T H J U N I O R S • Don't type • Let them make decisions and mistakes • Take breaks • Be prepared to say “I don’t know” • Find what they can teach you

Slide 19

Slide 19 text

PA I R I N G W I T H A R O C K S TA R As a junior you are still providing value and it is your job to teach them how to collaborate and communicate better. You should ask heaps of questions. You should ask to type.

Slide 20

Slide 20 text

C O M P R O M I S E D E X P E C TAT I O N S • Paired project fallacy • I’m not as good as my partner • Developer’s ego • Ego is what prevents us from asking for help, learning, and collaborating

Slide 21

Slide 21 text

B R O K E N E X P E C TAT I O N S • Check your reaction • Silence, avoidance, passive aggressive, sarcasm, anger, personal attacks, fundamental attribution error… • Humanise the situation: • Why did this happen? is there a deadline? How do I contribute to the problem? • Facilitate a conversation

Slide 22

Slide 22 text

TA K E A WAY S • Confident humility • Learn from each session • Take breaks • Talk a lot! even more when remote pairing • Pay attention • Switch roles often • Be complimentary • Whoever knows least should do most of the driving • Every session with a new person will be different • Pairing does not replace code reviews

Slide 23

Slide 23 text

R E S O U R C E S • https://devchat.tv/ruby-rogues/049-rr-agile-communication-with-angela- harms • https://www.agilealliance.org/glossary/pairing/ • http://www.pairprogramwith.me • https://content.pivotal.io/blog/pairing-like-a-pivot • https://www.devmynd.com/blog/2015-1-pairing-with-junior-developers/ • https://www.thoughtworks.com/insights/blog/pair-programming-hard- talk-your-team • Does Pair Programming have to suck? by Angela Harms, https:// www.youtube.com/watch?v=OQXEzwXtzJ8 • https://www.nytimes.com/2016/02/28/magazine/what-google-learned- from-its-quest-to-build-the-perfect-team.html?_r=0 • http://www.fatosmorina.com/ego-enemy-software-developers/

Slide 24

Slide 24 text

T H A N K S ! E L L E M E R E D I T H » @ A E M E R E D I T H » B L A C K M I L L . C O