I fell in love with programming because of the feeling of losing myself in ideas and concepts while being completely alone for hours on end. There’s just something about it, you know?
There are a lot of things I like about Agile development. I even do, now, believe in the power of pair programming. But it’s not because I can see the benefits of this technique that I necessarily like it. In fact, I deeply hate it. Not because I think it’s not effective, just because, in my case, it took all the fun out of programming.
Here are some benefits of pair programming that I personally experienced:
It improved my communication skills and the way I work in teams.
I did see, first hand, some programmers drastically improve their skills by working consistently in pairs (but at what price for their partners…).
*5 minutes staring at my screen trying to find another benefit…* Sorry I think that’s it.
After a few days of Bootcamp, I had my first traumatizing pair programming experience.
We were solving basic JS challenges. I was the navigator and he was the driver. Even though I hated the fact of not being able to type the code myself, I tried to make the most out of the exercise by asking a lot of questions:
“Why did you name your variable like that?”
“Why did you write this in a separate function?”
“Can we try my way just to see if it works?”
At some point, without any warning, my partner got up and left the room leaving me to my puzzlement. Turns out, someone asking loads of questions every two minutes is pretty annoying to most people.
And there started my long descent to hell.
Goodbye, the good old days when I’d program for 18 hours straight from the comfort of my bed.
Goodbye, the peaceful moments with myself when I’d spend days, sometimes weeks before thinking of talking to another human being.
Goodbye, the joys of working on ideas of my own.
One day, while I was at an emotional all-time low, I confessed to one of the instructors and told him that, literally, I hate pair programming.
His answer couldn’t have surprised me more: “Oh! yeah… pair programming is horrible.”
Finally, my aversion was acknowledged!
I’m not against pair programming. In fact, I really do believe it’s great for some people. I even think it could’ve been great for me if I would’ve been paired with more experienced pair programmers. But since we were all learning, most students made horrible partners (me included).
I know there are other people like me out there, who suffered at the hand of this technique and never dared to speak up because, in some cases, it can close doors to potential jobs.
But I’m not looking for a job anymore, so I don’t care.
So for your entertainment, here’s a comprehensive list of the reasons why I hate pair programming:
I hate typing on someone else’s computer. On my machine, I have my flow. Besides, some keyboards are really disgusting. If we’re going to pair program, cleaning up our keyboards every morning should be mandatory.
I hate it when someone else types on my computer. Especially someone who I just saw eating a massive juicy burger 10 minutes before and who didn’t even bother washing his hands.
What is it about these constant breaks after 20–30 minutes of work? Take a break. Come back. My turn to type. 10 minutes to figure out where we left off. 10 more minutes to figure out how to move forward. 5 minutes later, I start to get in the groove and 5 minutes after that: “Hey, can we take a break?” Arghhhh…..
Egotistical partners. You know, the kind who thinks they know everything better than you, or the guy that mansplains everything, or the legitimate genius who’s definitely way smarter than you but does his best to come down to your level (I mean, it’s sweet, but still extremely annoying).
Passive partners. The ones completely shutting down just because you know something they didn’t. Or the lazy ones more than happy to let you do all the work (honestly, that’s a best-case scenario). Or the person who really wants to learn but doesn’t get it at all, no matter how patiently you explain (remember what I said in the benefits above? Yeah, the price is high).
The micro-managers. They tell you what you need to type before you even have a chance to type it (“Yes, I know I need to write a semi-colon, it was just a typo… LET ME TYPE THE DAMN THING BEFORE SAYING SOMETHING!!!!” That last screaming part was just in my head, though there were a thousand situations where I wished I could’ve bashed that person’s head against a wall, if I’m honest).
Noise. Oh-my-god. A room full of people, working in teams, oscillating between having too much of a good time and arguing. The noise would get so out of control, someone literally (I’m not making this up) had to get up and yell “SHUT UP!” for everyone to quiet down for about 5 minutes. I’ve never had more intense headaches after a workday.
Agile, I love you. You taught me the value of working in teams and learning from one another. The experience was horrendous but meaningful nonetheless.
I’m now a freelancer. Back to peace, working for hours on end from the comfort of my home, with minimum human contact. The reality which became a dream is now my reality once more, with the added benefit of financial rewards.
I think I found my path.