Software for Good Logo
Insights / February 9, 2018

Better Together: Why We Advocate Pair Programming

By Annie Tran

Learning is one of our core values at Software for Good, from the most experienced engineers (like Kevin, who we call “Clippy” because he tends to have all the answers) to those of us with “Junior” in our job titles. Technology is constantly evolving, and every project we build is different, so there’s always something new to learn about or try.

One of the ways we learn on the job is through pair programming, a concept that comes from Agile software development. For the two of us, pairing started as a way to learn new skills from each other when we joined SfG (a week apart from each other!).

One of our first big projects was The Arc Greater Twin Cities’ app Get Set!, which had a quick timeline and pieces that were new to both of us. While creating a pager element to navigate within the app, we would pair up, take turns working on it, and then pair up again when one of us got stuck.

That’s still how we typically support each other as we’ve moved on to other projects — one of us getting stuck and sliding over to the other person’s computer to look at the code together. Rather than spending 8 hours trying to solve an issue on our own, we can figure it out in 2 hours together, and then we both know something we didn’t know 2 hours ago.

Sometimes even just talking out a problem can help us get unstuck. Software developers refer to this as “rubber ducking,” referring to hypothetically explaining a coding issue to a rubber duck. Often, simply explaining the problem out loud helps us figure out the answer.

During those times when we run into questions and bugs, it also helps to know that someone else is in the same boat. We both know what it’s like to feel imposter syndrome while working on something new. Pairing with someone else who’s on the same level, but has different skills that complement yours, makes it easier to get through challenges.

We even complement each other in ways that go beyond coding! Like when Jenessa brings back information from conferences to share with Annie, who as an introvert finds conferences draining.

No matter what level you’re at as a developer, we highly recommend pair programming — a much faster, more fun way to learn and problem-solve than going it alone.