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.’’
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.’’
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
• 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
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
• 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
• 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
• 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!
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.
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
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
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