Graduates and Pairing

Article by Alyssa Biasi
Published on Read in 5 mins

In March 2014, I was lucky enough to join REA Group’s first group of IT Graduates. The four of us have spent the past year rotating around the business, working with a variety of different teams. We have worked on front-end development, ops and everything in between.

This year the graduate programme has expanded to nine graduates!

Casey Leask put me onto the article “Pairing with Junior Developers” by Sarah Mei. I would highly recommend that anyone who has not experienced pairing with a graduate, and those who have, read it.

The main points of the article are:
  • Don’t type
  • Let them make mistakes
  • Take breaks
  • Be prepared to say “I don’t know”
  • Find what they can teach you

I thought I would add some of my own thoughts from my experience so far at REA.

Don’t type

We know that our pair is more experienced. We know that they could complete a task more efficiently. It is intimidating pairing with someone when there is such an obvious skill gap and it leaves us with a lack of confidence, especially when it comes to grabbing the keyboard and driving. A big part of overcoming this is learning that it is ok to not understand, ask questions and make mistakes.

Letting go of control and forcing us to type is so important for a variety of reasons:
  • There is only so much we can learn by watching someone else type
  • Driving helps us gain confidence as a member of the team and feel comfortable working with our pair
  • It gives us a sense of ownership
  • The fastest way to feel comfortable making mistakes, is to do it while someone is watching
  • Heckling! So much heckling

Ask us questions and get us to defend our choices as we go, even if they are right. Sometimes, we will have a feeling but not be able to articulate “why”. Forcing us to discuss our thought process helps us reinforce our understanding and tease out any misconceptions we may have. Being able to reason and defend our decisions is an invaluable skill for the future.

Of course, this doesn’t mean never type, it is supposed to be pair programming after all. It merely means be willing to give up control and be conscious of taking over. Seeing the way our pairs work and how their environments are set up is also valuable (thanks for all the new vim magic!).

Let us make mistakes

Personally, I believe that “feeling the pain” is one of the best ways to learn. Being told the how and why is good, but experiencing for ourselves helps us truly understand.This means sitting back while we go off on a tangent (even when we all know it won’t work – good old Ruby segfault). And, sometimes, going along with our ideas, sending us down a deep, dark rabbit hole until we can no longer see daylight… Thanks Jay and Alison.

Take breaks

Such uneven pairing can be exhausting! I strongly believe in TDD (a.k.a Tea Driven Development #tea).

When we join a team, the expectation is that we will spend time pairing with all of the team members. So feel free to palm us off! In a nice way that feels like a natural transition of course ;0) e.g. pair swapping after each card or mid-card. Having our pair jump off a card gives us the chance to practise bringing our next pair up to speed and walking through the code with them. Likewise, jumping onto a card in progress is also a good process to go through.

Be prepared to say “I don’t know”

We will pepper everyone with questions! When we start out, we see this:

Slowly, slowly, we’ll see this:

In order to completely understand, I often question my pairs and team. Sometimes this sets off a “lightbulb” and raises a whole new round of seemingly random questions/comments/suggestions. Occasionally, I will enter these discussions fully expecting to be proven wrong, purely to hear the reasoning and fully understand the “why” or “why not”.

FYI, don’t take it personally, the point isn’t to be argumentative! ;0) Just to understand and find answers for all the questions bouncing around my head while I try to join the dots and understand the full picture.

Find what we can teach you

I think this becomes more true the more we move around different teams. We are in a rare position where we have spent time in nearly all areas of REA. I find that there are times when I have more knowledge about what’s happening in other areas of the business – their pain points, current best practices or even just who to talk to for information. Aside from extra context around the business, we go around picking up different keyboard shortcuts, productivity tips/tools, etc. etc. Sharing is caring!

On that note, be prepared to spend time helping us set up our own environment, show us magical tricks and point us at cool tools and books to read. Especially in the first few months. If anyone has any problems with my IntelliJ/RubyMine setup, talk to Marty Andrews.

<disclaimer> Everyone has different preferences when it comes to learning and work flow. What works for me, might not work with others. Talk to them and find out yourself! </disclaimer>

Learn more about REA Group’s Graduate Programme.

More from the blog

From Teaching to Software Development – A Year On

Category: Career stories
Published on

A vision of the future is a bet we are prepared to make

Category: Tech
Published on

One year at REA: Lessons, Growth, and Gratitude

Category: Life at REA
Published on

Introducing Argonaut – Part Three.

Category: Tech
Published on

Introducing Argonaut – Part Two.

Category: Tech
Published on

Introducing Argonaut – Part One.

Category: Tech
Published on

View all articles