In this talk I discussed the challenges faced by junior and senior developers when working as a pair. During the session I considered the learning needs of developers on both sides of the skill spectrum and suggested a set of techniques which can be used to overcome the challenges faced by both types when working together to achieve a productive and enjoyable pair-programming experience.
Pair programming from
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)
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
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
The Junior The Senior
Hesitates to make a suggestion
Minimal knowledge of the
Focus of learning: codebase,
terminology, architecture, IDE
Happily suggests solutions
Knows the codebase very well
Focus of learning: best
practices, trends, system
Opportunity to try things out
Permission to make mistakes
Encouragement to experiment
Friendly disposition from their
Pain points of the Junior
I am slowing him down
Sometimes I don’t understand what he is
I ask questions all the time
If don’t get to drive, I struggle to
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
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?
Junior + Senior != pairing?
“A teacher-student relationship feels very different from two
people working together as equals even if one has significantly
Collaboration at the center of company culture
Possible antidote to Bram’s Law
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-
● 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
..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]
How about children pairing to solve problems? (e.g.
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’
Mistakes made by some teams:
pairing juniors with super experienced devs
=busy, under pressure, been in the industry for too long.
A good post on pairing with junior developers