On pair programming (blog post)

Pair programming: absurd or nah?

I adore having a preconceived notion and then changing my mind after gaining a new perspective. When this happens I get a great opportunity to laugh at myself and am again reminded that hey, I don’t always know everything I think I do.

In this week’s episode of Ashly Changes her Mind, we feature pair programming. Don’t know what pair programming is, exactly? Here is a quick video explanation.

When I first heard about pair programming, I thought, “Nah bro, that ain’t for me.” Two people working on one computer, passing the keyboard back and forth while they collaborate using an incessant stream of talking? Um, it could take (has taken) me years to get that comfortable with someone! And I’m not even to the stage where I can focus while listening to music; how in the world am I supposed to concentrate when my partner won’t be quiet already? Not to mention my perfectionist tendency of wanting everything I do to be 100% correct before showing it to the world — someone watching me make mistakes is my personal nightmare.

But then I did what I always do when I feel underinformed about something: I researched the hell out of it. And you know what? — it doesn’t sound so awful anymore. In fact, it sounds kind of awesome. I’ve worked mostly on my own for many years, and I am really good at it. I can happily work eight hours a day not having to answer to anyone, not having to supervise anyone, not getting constantly interrupted. But I get damn lonely. Turns out I need people. It gets exhausting motivating myself, bouncing ideas off of myself (yes, that’s a thing), staying encouraged by myself, learning by myself! And being a bit shy hasn’t been conducive to grabbing someone and saying, “Hey, want to work on this together?” But with pair programming, people are thrown together with a goal and I know some of you are rolling your eyes right now because it can be dreadful but you know what? It can also be amazing.

We feed off of one another’s energy, and we challenge each other. When clashing personalities have to find a way to come together, we grow and are better off because of it. Yes, it can be tough getting critiqued on our way of doing things. Yes, it can be a hassle coming up with an articulate explanation for why we think something should be done. Yes, it can take up precious time experimenting with different ideas to find the best one. But hey, welcome to the world of working with other people! If we want to develop our social and business skills, if we want to help foster an environment of give-and-take among our team, if we want the best ideas to make it into the codebase — then pair programming sounds like a solid way to go.

Junior devs, are you unsure? Pair programming could be a great way for you to learn programming by osmosis, as Maaret Pyhäjärvi likes to say. Keyboard shortcuts, programming styles, thinking patterns — all these can be picked up more quickly by pairing with someone more experienced. Senior devs, are you uninterested? Pair programming could let you pass on your knowledge to someone who needs it while solidifying your own learning and methods of teaching. Think of it as a paid way to contribute back to the community! Managers, do you have reluctant participants? See if they are willing to try it for a few sprints before they say no way. Maybe it’s just not their style, or maybe they’ve never found the right partner.

There are so many incredibly smart and talented people in tech. I’d much rather work alongside them, learning and teaching where I can, than sit across from them and work alone. Sure, I may change my mind again down the road, but right now I am all in on pair programming.