About Pair Programming

Shakirat Komolafe
4 min readNov 22, 2021

--

According to Wikipedia, pair programming is an agile software development technique(i.e is a set of practices intended to improve the effectiveness of software development professionals, teams, and organizations) where two programmers work together at a work station (one laptop screen, one keyboard etc) physically or remotely, where one person is the driver(the one who inputs the code) and the other is the navigator (this is the person that directs the driver on what to write and how to write it).

SO, Why do we Pair Program ?

Increased Efficiency and quality of code: It helps programmers to produce more efficient and quality codes as there are two focused people working together to create a solution, although there are people that believe pair-programming is time wasting, but the results overweigh this opinion.

A great example of this is the google story by Jeff Dean and Sanjay Ghemawat

Communication and Social skills: pair programming involves a lot of communication and building of social skills , as we have two people constantly communicating their thoughts, problem solving skills, methodology, bouncing ideas off each other and finally reaching an agreement on what to do and how to do it.

Through this process interpersonal skills and relationships are built, also programmers learn how to communicate their thoughts clearly to others and learn to listen to others .

Ease of work: sometimes being a driver makes your work easy as someone else directs you on what to do and how to do it, what code to write and you just follow their instructions.

Learning opportunity: It can serve as a leaning opportunity especially for junior developers or those just starting out on their programming journey when they are paired with seniors , they learn problem solving skills , new syntax or languages.

My Experience thus far..

My first experience with pair programming was at the Full-stack web development bootcamp at Lighthouse Labs, in the first week of bootcamp we were introduced to pair programming and we had our first of several pair programming exercise.

Snippet from Lighthouse Labs curriculum

We had to practice how to work with others while solving technical questions, sometimes as a pair or a group, it was a humbling experience and an educational one where we learnt how to solve a problem in multiple ways through the eyes of others, running our solutions by others and basically communicating with each other to solve challenges.

I had experience being a navigator and also a driver, on one of such occasions, my pair and i got stuck while trying to solve a Javascript challenge and we both decided to seek for help from our instructors to better understand the challenge and know where we were getting it wrong, Oh what an experience it was!

Snippet from Lighthouse Labs Curriculum

The cons for me

Imposter syndrome: As someone who struggles with imposter syndrome, i didn’t do so well generally at pair programming as i always felt unworthy and inadequate when i got paired with someone that was ahead of me in terms of problem solving and has a good grasp of programming, i struggled to share my ideas and thoughts.

Bad pair practice: sometimes i got paired with people who had bad pair programming practices, they solved the challenges prior to the alloted time hence, they just glazed over it and wanted it done as soon as possible.

some were bad communicators who didnt know how to listen to others , they sometimes abruptly take over the driving in the middle of navigation, the subtle power tussle and Ego at play.

Recommendations

I think that pair programming as a learning tool is quite apt, but i will recommend the following for organizations:

  • Pairing should be between those that are closely or on the same level of development or growth.
  • Agile trainings should be made compulsory for programmers.
  • leveraging on people’s strength to decide who to drive and who to navigate.

For students, i will recommend the following:

  • When you are paired with someone higher than you, Do not feel intimidated about anyone’s knowledge or skill, it’s something they have worked on over the years.
  • When your partner doesn’t listen to you or dismisses your opinion, please report to an instructor or supervisior.
  • Take it easy on yourself, you are doing just great.

In conclusion, i think that pair programming is a great tool that aids learning and helps build better quality codes with less bugs.

--

--