As James Shore says of pair programming in his eponymous blog, “It’s more fun than it sounds: two programmers at one computer. One drives; the other navigates. Switching roles fluidly, they constantly communicate. Together, they accomplish better work more quickly than either could alone.” Teamwork never sounded so poetic.
Titansoft is an Agile organisation and we have been practicing pair programming since 2014. And having experienced the benefits of this practice, we are extending it to out Recruitment process. Having a programming session with a potential candidate is only one part of the hiring puzzle, but it’s often the most important one. Rather than looking at the CV and asking a long list of questions, which may not be as effective, we get around recruitment for our Senior Software Developers by holding a pair programming session. We believe that the pair programming process creates a better opportunity to showcase a coder’s skill.
“Through pair programming, our developer can know more about how the candidate behaves during real work such as his working style, coding preference, discussion etc. In addition, we are also able to show the candidate the way our company people code.”
Ji Zhoubo – Senior Software Developer in Titansoft
So, what exactly is Pair Programming?
Pair programming is an agile software development technique where two developers are coding together at a single workstation. Meaning one is typing and one is observing. There are different approaches and best practices of how to best co-operate. Most commonly the one who is typing is called the ‘Driver’ and their main focus is to write and think about the current task while the ‘Navigator’ will focus more on the overall direction.
The idea is to split up responsibility between the driver and navigator to keep a steady development flow, avoiding bugs, better structure and while doing that share more knowledge across the team. One important key take away from paired programming is that communication never ends – The ‘Driver’ and ‘Navigator’ should be constantly talking to keep both involved.
Extending it to our Recruitment Process
We pair our developers with the candidate. During the pair programming session, the developer will establish a conversation with the candidate and both of them will work together to solve the task. Also, to understand the candidate’s knowledge, simple questions will be asked along the way.
The candidate will then be the ‘driver’ of the session. This means that the candidate will explain their approach to the problem – what may or may not work and what are the advantages or disadvantages. While on the developer side, playing the role of the ‘navigator’, will be responsible for the ‘driver’s’ move. Taking approximately 3 to 4 hours, both the candidate and the developer will work together on the same code through discussion and sharing of their thoughts.
The benefits gained from pair programming can help both our developer as well as the potential candidate! First of all, it is the exchange of ideas between each other. It is also a good way to see if the person you have be pair programming with is someone whom you would like to work with for the next few years! In the end, the pair programming in the interview is not only about ensuring that the candidate meets our expectations but we too want to understand the candidate’s expectations. Although it can be a tedious interview process, we believe that both candidate and our developers can learn from this experience.
Keen to know about our process? Then apply with us as a Senior Software Developer today!