Over the past year, there has been many changes in my life, including the start of a new adventure at McGraw Hill Education working within the MHElabs group. With this new adventure, I’ve been exposed to a bunch of new technologies and processes. But the most exciting prospect is pair programming.
Pair programming is crucial to our software development process that has helped me become a better engineer and person. This post is about my personal journey with pair programming within the past 6 months and I hope it gives some insight into what, I believe, is a great advantage in Software Engineering.
Its not easy
Pair programming is an art form, it takes practice and most importantly – time. When I first started pairing it was tiring; for an entire day I listened, spoke and coded. It forced me to think out loud and talk through possible solutions – even though I had no idea what I was actually doing. Luckily for me, my partner knew what was going on and had more experience and knowledge of the application.
Many times I felt like a noob, but my pairing partner was always reassuring and patient in familiarizing me with the application. It was tough to get going, trying to talk through things and fail. Only to become successful with delivering at the end of the day. This is where pairing is wonderful.
…but it does help
Somehow, pairing helped me efficiently deliver completed software tasks. So although I was wiped when I first started pairing; I also was active in delivering software, learning new technologies and getting to know my fellow co-workers. This was kind of strange, because I was brand new to the company and the application.
But the key was that we were working together, focused on a task and questioning each other as we progressed. Pairing has removed distractions that I would typically see if I was working by myself; including instant messenger, Google Hangout, Facebook, Twitter, etc… With pairing, all of that went away and my mind went straight to delivering stories.
Having partner to be there with you throughout the process also removed many of the double guessing you have when coding; such as wondering whether you did some technically right, or if you should refactor. Your partner is there to guide you, catch mistakes, ask questions and ultimately this partnership makes both persons better at engineering and as a person.
Pairing isn’t just about the software, its also about the relationships you build. I found that I’ve grown closer with my team because I pair with them. The act of pairing has afforded me the opportunity to learn more about my co-workers by collaborate with them and getting to know them better.
The truth is that I’ve taken the time to learn my co-workers personalities, opinions and over thought process. Which has in turned helped me become a much more empathetic individual in my personal life and professionally. I take the time to listen to other members of the team; including project, product and design. Which has in turn helped me ask the right questions so that our team can deliver what is needed for our application(s).
People, not Technology
Software Engineering is about people, not technology. Technology comes and goes, but a well gelled team of people are more important to a products success than your technology stack. As I like to put it, a car is only as good as its driver. Pairing has afforded me to recognize and truly accept this in my professional career, and I look forward to many years of continuing this practice.