Pair Programming — my thoughts.

Stephen Dawes
canitbedone
Published in
3 min readJun 15, 2016

This is a very short blog concerning my views on pair programming. It lies at the heart of the Makers Academy philosophy and it the foundation of everything they do. I have practiced it for just under a month now, and whilst I overwhelmingly support it and would preach it’s benefits — I have a few thoughts of the mechanism for how it is implemented on the course.

Pair Programming (picture not from Makers Academy).

I clearly see the benefits from pair programming and there is no doubt in my mind that there is no better way to learn and improve through coding in collaboration with others. It has been an exciting and interesting experience, waiting in anticipation each evening for the Academy to publish the next day’s pairing partners list, and waiting to see how your new partner operates and what you might learn from them.

The way in which Makers’ teaches, through a series of weekly challenges, increasing in complexity through a number of steps throughout the week, is conducive to and works well through pair programming.

In a class as large as ours, and as it is in all walks of life, there are people who are naturally more gifted and more advanced than others, and there are some that take longer to pick things up and struggle at certain things compared to others. It is through pair programming that the standard of the entire class as a whole is lifted and collectively, the skills of the entire cohort improve, as those who are ahead will default to the position in the challenge of the pair partner who is behind and assist in bringing them up to speed. In turn, for the partner who is ahead that day, it is a chance to consolidate past learning and improve their ability to teach and to clarify. In all, the whole class benefits and the collective standard is raised.

In addition to these benefits, everyone gets to code with someone different each day, and with a class of nearly 40, you will always be working with a different character, be able to learn new skills, new processes and see a different way of working, each and every day.

The way that Makers allocate pair partners is (I assume) completely random. The only downside to this, is that while I doubt anyone would argue against the merits of either teaching and assisting someone who is behind, or learning from someone who is more advanced, there is a danger that if the same pattern is repeated consecutively, then boredom, frustration or anxiety may set it. I have experienced this once myself, where unlike some of the others in my cohort, I can not (if behind) simply complete and fully understand a whole weeks worth of work in one night. There has been a time (and I worry it will happen again) that for three consecutive days, I have started again from where I left off the day before, so that from Wed through to Friday, I started from exactly the same chapter each day. Now of course, I was happy to consolidate and assist for the first day, but come the third day, I was not advancing myself, and therefore could not complete the challenge and did not have the expertise or capacity to quickly finish it off on the Friday, ready for the weekend challenge. Because of this, I lacked some of the knowledge required for the weekend challenge and was unable to fully complete it. In complete opposite to this, I have also found myself working with someone who was far advanced from me, and had herself gone through the same few chapter for three consecutive days. Although she was professional, courteous and polite, you could see she was also frustrated and in turn, I was panicked into worrying I was holding her back.

Perhaps there is no perfect system, and it is without doubt that pair programming works, and should be utilised. Perhaps the fears detailed above are irrational, and I will look back in a few months and deem them unfounded? At the moment though, I cant help feel that perhaps an application or program could be designed to ensure that people alternate between being ‘behind’ or ‘ahead’, but I guess that would mean somehow rating everyone, grading everyone, and you may find yourself working with the same people more often that perhaps is healthy?

--

--

Stephen Dawes
canitbedone

16 years working in aviation. Leaving to change direction. In my late 30s with no previous knowledge of programming or web development. Can this really be done?