Around this time last year, I was enrolled in the Full Stack Web Development bootcamp at UC Berkeley. In addition to learning the wonderful world of JavaScript, we were expected to write several blog posts. I chose to write about Pair Programming.
Since completing the bootcamp, I have been hired as an Associate Cloud Native Application Developer at Soliant Consulting, where I put my skills to good use developing full-stack applications for a variety of clients. As you might imagine, my thoughts on the topic since my bootcamp have drastically changed, and so I’ve decided to share my updated thoughts on when and how to practice the Agile methodology of Pair Programming.
Pair Programming: a Bootcamp Experience
In the bootcamp, especially for those with less experience with coding, pair programming was invaluable. I still remember trying to solve a coding challenge by making a needlessly complicated two-dimensional array, only for one of my cohorts to say, “You should probably use an object for that.”
Simply having someone look at my code, or looking at other peoples’ code, led to an enormous amount of valuable insights – some of which I never would have encountered on my own. During project week, we had plenty of time to devote together, and we would run into obstacles so frequently that it made sense for us to spend hours together on an extended zoom call just to be able to switch between coding and helping each other troubleshoot.
Programming in a Professional Environment
When you’re in a professional environment, and time is quite literally money, pair programming is not a realistic approach. One of the first skills I had to learn when I started working at Soliant was working as autonomously as possible. I made a point to figure something out by myself even if I felt out of my depth. In addition to learning valuable coding skills, it was satisfying when I would ask for help and discover that I was 95% of the way there already! This is where pair programming still shines in the professional software development world: It is an invaluable tool for when you get stuck and need help.
That being said, it requires a careful balance. Asking for help too early will lead to less valuable insights, but asking too late will lead to wasted development time.
Communication is Key
Ultimately, pair programming is a “less is more” strategy that relies on communication skills. As my programming skills evolved, so too did my ability to assess a problem, explain the context of how the logic is supposed to work, as well as express how it currently doesn’t.
Communication is also a two-way street, so I also need the person helping me to say, “I don’t understand what you’re trying to do,” or “why do you need this to work?” in order to remove unnecessary assumptions.
Improving communication skills leads to a virtuous cycle where I am able to be more autonomous and allows me to rubber duck even more effectively. I’ve solved several coding problems simply by typing them out in an instant message channel right before I was about to hit ‘send.’
If you’re still a student or in the process of learning coding without budgetary or time constraints, you should be doing pair programming as much as possible. Even just watching another developer code or having them watch you code and give feedback can yield a plethora of valuable insights. And due to the complexity of our ever-evolving software world, the value of communication skills continues to increase.
In the world of coding and programming, learning never ends. As my skills grow and my expertise deepens, pair programming has less of a role in my work. When learning something very new, though, I highly recommend it.