What I learnt pair programming with a senior dev17 Oct 2016
A couple of weeks ago, I had the pleasure to travel for some pair programming with a senior developer in our team who lives in Cape Town. This being our first meeting, I was really excited to finally meet the guy we all joke is a bot (internal joke). During my time in Strand (quiet city in Cape Town), I learnt some things I’d like to share here. These things became more apparent after our sessions and I think they should be considered huge benefits of pairing with someone more senior.
Thinking through problems
What jumped out to me from the onset was our different approaches to solving problems. All the way through I marveled at how my partner didn’t make much use of Google, he only used it specifically for things that seemed like edge-cases. The minute we had a problem set to solve, he’d have an implementation in mind, or would consider a few with maintainability as main criteria. We would get on with actual coding after that initial, sometimes lengthy consideration. So coding to him, I realized wasn’t just actual typing but honestly picking right approach was a big component of it. I realize this is something that likely comes with experience, which justifies their level.
Again, highly attributable to more experience, I noticed a lot of stuff and tools we used from his machine were well automated. This saved us time tremendously, those 2/5 minutes gains when spinning servers and less-ing error logs obviously gave us more time to commit to other tasks and generally made coding more pleasurable and less “fiddly”.
Importance of context
When programming as part of a team, it’s pretty tough to have everyone on the same page about everything. This is made even tougher if it’s a distributed team and some members being more introverted than others . A lot of times, I had felt a bit behind in what needs to happen so would rely on a clearly defined spec otherwise the big-picture would not be crystal clear. Pairing in-person with someone who had a solid understanding from top-bottom left me well equipped to actively partake in discussions after pairing.
Quicker pace of learning
One of the main reasons for my pairing session was that I had to take up a new language (C#) and start developing mobile apps using Xamarin. Not to mention using Couchbasedb, so in essence it was a full, new stack I had to familiarize myself with. After having had a crack at it on my own, I couldn’t contribute effectively even though I was really really loving C# and the ease of use of Xamarin. Pair programming in this instance, helped a lot. Having someone with a thorough understanding of my coding background explain ways to solve problems from my point of view helped me get acquainted and navigate some tricky areas that could have tripped me up in no time.
More importantly, in the words of the senior dev pair programming also helped him understand my weaknesses and strengths, different from seeing stackoverflow-adapted ‘fixes’ so he’s now well placed to give actionable, concise direction & help. All in all it was a great trip and pair programming has without doubt risen to the top of my must-do’s!
Thanks for reading.