Insight To Pair Programming

Steven Chen
4 min readFeb 7, 2021

As a beginner in my journey to become a web developer, I’ve faced quite a lot of challenges when I first started to learn how to code. Never-ending searching for tutorials on YouTube with not enough coding, suffering from Imposter Syndrome(still do), too shy to reach out for help, etc. Yes, coding is not an easy task and what I realize is that the difficult part for most people is the ability to organize their thought process. When I was first introduced to pair programming, I had a realization. Most of the time when I code, I am mainly staring at my computer and doing all the google searches by myself. But with pair programming, I was forced out of my comfort zone by expressing my thoughts to another person. And guess what? My head went blank and I stuttered most of the time.

There are many things to wrap your head around when solving a problem. Sometimes people are blinded by what we think that is necessary, but there is no one and only right answer in the world of programming.

— Definition of Pair Programming —

Pair Programming, simply put, it means to have a pair of developers working together on the same computer to write the same code. While there are different styles of pair programming, there are two main roles, one person does the typing (the Driver) and the other only uses the words as a guidance(the Navigator). The core of the practice is spreading 2 loads across 2 brains.Just like the expression, “two heads are better than one.”

— The Good and The Bad —

The Good =>

Sharing knowledge

When two people are solving the same problem, there is a better chance to find a good solution. Different experiences can lead to different approaches during the thought process. Working together can expose your team to a unique technique that one might have never thought of. Moreover, bringing different elements into the discussion can help challenge each other’s ability so we don’t stay in the comfort zone. There is always something new to learn as a web developer.

Increase efficiency(if you have the right person)

“What don’t I know?” is a question that I am always asking myself when I am learning a new subject. What are the tools that I should learn or what is something that I am missing that is stopping me from finding the solution. Pair Programming can save a developer’s time because while the Driver is focusing on the current task, the Navigator is doing the planning but most importantly, looking at a bigger picture and directing the Driver. The person that is writing the code can focus one thing at a time and being able to focus on small problems incrementally, is how developers can solve the bigger problems.

Practicing your soft skills

Pair Programming is great for improving your soft skill. Keeping everything to yourself will not only hinder developers from absorbing new information, but also stopping others to share and contribute to the project. We hear a lot about how important it is to have good communication in the team. Being a web developer is not just coding all day long, but collaborating with other developers as well. No matter how strong your coding skill, it is essential to work with people that are able to work well with others.

The Bad =>

Prevent creativity

The different skill levels can be quite intimidating. One may not want to feel embarrassed for thinking about not being able to understand a simple question (or is it that simple?) One might be afraid of discouraging another person. There are all kinds of uncertainty that people might be thinking inside their head. I think it might lead developers to not fully express themselves to each other. Even when people are working together on the same computer, there is still a part of us not being able to utilize the best of one’s talent.

Energy Draining

It is quite easy when working alone. When you are working by yourself, especially at your own pace, you can determine when to take breaks. Pair programming not only forces the person to be focusing on the code, but also focusing on what the other person is saying. Dealing with a new way of thinking also takes some time to adjust. Pair programming requires constant communication with each other. It is quite exhausting if the person is not comfortable at this style of communication.

— A Final Thought On Pair Programming —

Even though I see the value of pair programming, it is not something that always works for me. Essentially you are asking one person to work under constant surveillance and the other to constantly poking holes. It is pretty stressful especially for people with introverted personalities like me. Programming is both physically and mentally stressful in my opinion. And when you put another developer next to me, whether I am being a Driver or a Navigator, I will have a hard time concentrating, not to mention verbalizing my thought process. But again, mastering a skill takes years of practice. I believe this also applies to pair programming. We developers can definitely learn a lot from each other, but the same methods don’t apply to all of us.

--

--