Paul Julius > Blog

World Famous Pair Programming Talk!

December 29th, 2012

Back in 2007 I was contemplating what I wanted to speak about at conferences. I asked myself, “What do I feel strongly enough about? What do I really care about? What practices should everyone be doing?” Two things came to mind:

Advanced Continuous Integration (now we call this Continuous Delivery)


Pair Programming

Speaking at conferences can be a ton of fun. I recommend it for anybody working in the consulting field. That said, conference lecturing requires significant time and energy. This will come as a shock: You have to prepare! If you do not practice, then your audience will quickly lose interest. They will inevitably use the Law of Two Feet.

The topics that I was going to talk about had to be personally interesting. I had to have a passion for them. I knew I would be reusing (and continually refactoring) the presentation material for at least a year. I had no interest in signing up for something that would bore me senseless.

Pair programming in action.

Photo by Erwin Bolwidt. Your host, pairing at CITCON Singapore 2012.

CI (Continuous Integration) has been a fascination for me since the year 2000. Heck, I co-founded CruiseControl, mostly in my spare time, to scratch that itch. Beyond that, in 2007, Jeffrey Fredrick and I had one year of CITCON (the Continuous Integration and Testing Conference) under our belt. So all things CI were a natural fit.

A quick aside: Jez Humble and Dave Farley’s book on Continuous Delivery was still in the works at the time. I remember talking to Jez about the book, but I do not recall if the term Continuous Delivery was finalized yet. From as early as 2003 people were using terms like CI++, Advanced Continuous Integration, Continuous Deployment, Continuous Delivery, CI All the Way to Production, etc. For me, I wanted to talk about CI beyond setting up CruiseControl, or Jenkins, or AntHill, or Bamboo, or… (fill in the blank, 2007 saw a huge upswing in Continuous Integration platforms). Advanced CI would leverage my years of expertise. It was clearly a no-brainer. I needed a second talk.

I thought back to two practices we used on my last project in Detroit – TDD and pair programming. My colleagues at ThoughtWorks were already doing a bang-up job presenting on every facet of TDD. I also really enjoyed Uncle Bob Martin’s talk on TDD. I did not feel like there was much meat left on the bone. Pair programming was a different beast.

Pair programming was a frequently dismissed, overlooked, despised portion of the original XP white book. People would tell me that they had tried pairing, but hated it! I heard the same story over and over again, amongst colleagues and clients alike. I held quite the opposite opinion (and still do). I love pair programming!

What was I doing that all these other people were not? I am no smarter. I am no worse programmer, and likely not particularly better. I knew that I needed to suss out the core differences that made pairing a delightful endeavor. In fact, I hated programming without a pair.

Out of that came my talk entitled (usually) “Pairing with Pizzazz”. Sometimes I have called it “Pairing with PJ”. I have been doing this talk for five years. People love the talk. I love to give the talk. I make it fun by live pairing with people. I combine a little knowledge sharing with a little hands on.

I have given this talk at least 25 times, around the world. I have delivered it at big industry conferences. I have delivered it at smaller un-conferences like CITCON. I have presented it at internal company conferences. I have presented it at local user groups. I will probably give this talk publicly at least once in 2013, 2014 and 2015. And now I want to share it on my blog.

The presentation material consists mostly of pictures. I tell a story. I do not read bullet points! This will make it more difficult for readers seeing the material for the first time through the internet. Anyone with questions should email Both the PowerPoint slideshow and the PDF version contain some notes that I wrote when I was first thinking through the talk. That will help casual readers.

Feel free to read through the talk. Feel free to share it with colleagues. Please do not present this material as though it were your own. Do feel free to present it as though you heard about it from me and wanted to help make the world a better place.

Finally, for full disclosure, I did not invent anything new for this talk. I leveraged the expertise, experience, enthusiasm, passion, mistakes, dissatisfaction, and joy of hundreds of people with whom I have had the extreme privilege of pair programming. Thank you, everyone! (And Happy New Year).

Download the PDF version of the presentation.
Download the PowerPoint version of the presentation.
Email me with questions or just leave a comment on this blog entry.