Setting the Tone Before Rubbing Elbows

Rubbing Elbows’ one of the patterns from an Apprenticeship Pattern by David Hoover and Ade Oshineye recommends apprentices to seek out opportunities to work side-by-side with other developers.

I agree pair programming (one form of ‘rubbing elbows’) is a great way to learn but also an effective way to tackle problems. For one, different perspectives can lead to formulating more robust solutions. Secondly, a second set of eyes can potentially prevent typos or the likelihood of wasting time straying down a rabbit hole. Thirdly, the energy from the collaboration can keep the motivation and momentum going. Furthermore, I believe there is always an opportunity to learn from each other even when their is a gap in experience levels. A master craftsmen can further develop his or her leadership and coaching skills, while the apprentice can pick up on technical knowledge and techniques from the pairing session. The number of benefits derived from ‘rubbing elbows’ makes this pattern widely used in different companies.

That said, working intimately with people (ie sharing a keyboard) can come with challenges. Dave and Ade, recommends providing feedback to your pair or possibly rotating pairs if that is an option. One suggestion I would make to mitigating these issues is to set expectations and boundaries before the pairing session. This is the time to define goals, problem-solving approach, pairing styles, computer setup, and any “no-no’s” that can lead to ill will.

Below is a snippet of a make up conversation, between Andrew, an apprentice and Jenny, an experienced craftswomen regarding a pairing session to implement email notifications when new produce lines are launched for an e-commerce website:

Jenny: So our client asked us to implement email notifications to be triggered to active customers when a new product line is launched on the site. Any thoughts on how you would implement this feature?

Andrew: I believe this could be similar to the feature of sending email confirmations when a user signs up, however, the trigger would just be when a new product line is added and the recipients would be active clients. Perhaps we can spend some time to map it out?

Jenny: Sounds great, since this is the first time pairing with you, do you like to keep to a structured pairing schedule where we alternate driving and navigating every 20 minutes or just go with the flow?

Andrew: Yeah we can try the structured approach, although could we take a 10 minute break after both of us has navigated?

Jenny: Yeah, that is cool.

Andrew: I like how our pairing station is currently set up, however, is there anything that could bother you during the session?

Jenny: Yeah, it bothers me when my pair responds to Slack notifications that are not related to the project.

Andrew: Sure I’ll keep that in mind.

Investing in this conversation could pay off dividends in the long-term. Imagined, if Andrew was not aware that checking Slack while pairing was one of my pair’s pet peeves. This could potentially lead to a negative experience.

Everyone is unique and every pairing session will be different. Setting expectations early and fine tuning the process could make pairing a fruitful and enjoyable experience. I am glad that my apprenticeship with 8th Light would provide me the opportunity to pair with different craftsman on the team. I will have to adapt to different styles but I believe having a conversation to define the goals, set expectations, and clarify boundaries will help create a seamless experience to ‘rubbing elbows’.