Slide 1

Slide 1 text

Pair programming from a beginner’s perspective Irina @irinabasrawi

Slide 2

Slide 2 text

The beginner Associate Software Developer at YOOX Net-A-Porter Group (3 months) ● www.net-a-porter.com : purchase path & customer accounts Technology Graduate at Net-A-Porter Group (12 months) Test Automation UX Web Dev Java Dev

Slide 3

Slide 3 text

WHY?

Slide 4

Slide 4 text

Pair - programming is a social skill [extremeprogramming.org] Theory and practice of pairing could not be more different if they tried It is hard to pair, and it is harder to pair with a junior Fun facts

Slide 5

Slide 5 text

Things to consider The needs of pairs with different skill levels The pain points of the junior dev The pain points of the senior dev Pairing vs mentoring? Key tips on pairing with juniors

Slide 6

Slide 6 text

The Junior The Senior Inexperienced Lacking confidence Hesitates to make a suggestion Minimal knowledge of the codebase Focus of learning: codebase, terminology, architecture, IDE shortcuts Expert Confident Happily suggests solutions Knows the codebase very well Focus of learning: best practices, trends, system performance Personas

Slide 7

Slide 7 text

Junior Senior Opportunity to try things out Permission to make mistakes Encouragement to experiment Constructive feedback Friendly disposition from their pair Deliver fast? The needs

Slide 8

Slide 8 text

Pain points of the Junior I am slowing him down Sometimes I don’t understand what he is saying I ask questions all the time If don’t get to drive, I struggle to stay engaged If I disengage from the session regularly, I am not learning If I am not learning, I will remain a slow pair for a long time

Slide 9

Slide 9 text

Pain points of the Senior He is slowing me down We’ve been discussing this for 10 minutes - it will take me just 2 seconds to type the thing in and move on This is a one-way conversation - I seem to talk and explain all the time What kind of pairing is this?

Slide 10

Slide 10 text

Junior + Senior != pairing? “A teacher-student relationship feels very different from two people working together as equals even if one has significantly more experience... [extremeprogramming.org]

Slide 11

Slide 11 text

Benefits Knowledge transfer Collaboration at the center of company culture Possible antidote to Bram’s Law

Slide 12

Slide 12 text

Key tips on pairing with junior developers ● Acknowledge the fact you are pairing with a junior ○ they will require more support, patience and guidance ○ decide if you have the right attitude, enough time, experience in pair- programming ● Pick a suitable story to work on ● Reflect and adapt the way you work to suit you both ● Think out loud ● Feedback continuously and constructively ● Do the small talk

Slide 13

Slide 13 text

Final thoughts ..Our willingness to work together could be the juice that will push computers forward. We will all have to master pair-programming (not just mentoring) to make this work. It will be awesome. Best regards. -- Ward [Ward Cunningham on Pair Programming to the pdxruby mailing list. Thu, 29 Nov 2012]

Slide 14

Slide 14 text

How about children pairing to solve problems? (e.g. Code Club) They don’t have any knowledge of the domain But they are not shy to ask (snatch) a keyboard & mouse from each other. You will see them constantly leaning over each other, pointing at the screen and experimenting with solutions. (is it because they all feel equal? or maybe because they tend to choose their friends to pair with? as grown ups, what can we learn from their behaviour? do we need to try to work with people who we don’t naturally click with or do we just hope that there is always someone in the team who can fit our ‘perfect pairing partner’ criteria?

Slide 15

Slide 15 text

Mistakes made by some teams: pairing juniors with super experienced devs =busy, under pressure, been in the industry for too long.

Slide 16

Slide 16 text

A good post on pairing with junior developers http://www.devmynd.com/blog/2015-1-pairing-with-junior-developers/ @irinabasrawi irinabasrawi.com Thank you