Slide 1

Slide 1 text

Pair-Programming From a Beginner’s Perspective @irinatsyganok

Slide 2

Slide 2 text

Test Automation User Experience Java Development Web Development

Slide 3

Slide 3 text

Compatibility Emotional Cultural Psychological

Slide 4

Slide 4 text

Frustrations To pair or not to pair?

Slide 5

Slide 5 text

Frustrations To pair or not to pair? Availability

Slide 6

Slide 6 text

Frustrations To pair or not to pair? Availability Deadlines

Slide 7

Slide 7 text

Frustrations To pair or not to pair? Availability Deadlines Sharing is caring

Slide 8

Slide 8 text

To pair or not to pair? Availability Deadlines Sharing is caring Junior mind readers Frustrations

Slide 9

Slide 9 text

Engagement

Slide 10

Slide 10 text

Personas Junior Developer Inexperienced Lacking confidence Hesitant to make suggestions Minimal knowledge of codebase Senior Developer Expert Confident Happily makes suggestions Expert knowledge of codebase Focus of learning Codebase, terminology, architecture, IDE shortcuts Best practices, trends, performance

Slide 11

Slide 11 text

Junior The Needs

Slide 12

Slide 12 text

Junior Permission to make mistakes The Needs

Slide 13

Slide 13 text

Junior Permission to make mistakes Encouragement to experiment The Needs

Slide 14

Slide 14 text

Junior Permission to make mistakes Encouragement to experiment Constructive feedback The Needs

Slide 15

Slide 15 text

Junior Permission to make mistakes Encouragement to experiment Constructive feedback Friendly disposition The Needs

Slide 16

Slide 16 text

Junior Permission to make mistakes Encouragement to experiment Constructive feedback Friendly disposition Active engagement The Needs

Slide 17

Slide 17 text

Junior Senior Permission to make mistakes Encouragement to experiment Constructive feedback Friendly disposition Active engagement The Needs

Slide 18

Slide 18 text

Junior Senior Permission to make mistakes Permission to make mistakes Encouragement to experiment Encouragement to experiment Constructive feedback Constructive feedback Friendly disposition Friendly disposition Active engagement Active engagement The Needs

Slide 19

Slide 19 text

The pain points - Junior I am slowing him down Sometimes I do not understand what he is saying I ask questions all the time

Slide 20

Slide 20 text

The pain points - Senior He is slowing me down We discuss a line of code for 10 minutes Can I just type in and move on? This seems like a one-way conversation What kind of pairing is this?

Slide 21

Slide 21 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 22

Slide 22 text

Pairing Patterns Leader/Adopter

Slide 23

Slide 23 text

Social Work environment filters social interactions through a prism of organisational culture

Slide 24

Slide 24 text

Can anyone be a leader? Acknowledgement

Slide 25

Slide 25 text

Acknowledgement Evaluation Can anyone be a leader?

Slide 26

Slide 26 text

Acknowledgement Evaluation Consent Can anyone be a leader?

Slide 27

Slide 27 text

No pain no gain? + Collaboration at the centre of company culture + Knowledge transfer + Improved general pairing and people skills

Slide 28

Slide 28 text

Our strategies Swapping pairs Agreeing on the WIP Comfortable working environment Time apart Synchronised breaks Start to end story ownership Small talk

Slide 29

Slide 29 text

Final Thoughts ..Our willingness to work together could be the juice that will push technology 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]