DEV Community

Discussion on: Let's chat about pair programming

Collapse
 
eljayadobe profile image
Eljay-Adobe

In my experience, benefits of pair programming:

  • continuous, on-going code review (and a deep code review, rather than a shallow one that typically happens with after-the-fact code reviews)
  • if doing bona fide TDD, then pair programming will keep them honest
  • code quality improves a lot
  • best possible knowledge transfer between the two programmers and/or mentoring
  • incredible team building and cohesion (especially if pairing promiscuously amongst team members)

I'm sure there are more, but that is the ones that have struck me as "wow"!

Collapse
 
j23schoen profile image
Justin Schoen

I agree with all of these! I've had nearly identical experiences with pairing. The code quality is a big one for me. It's easy to write code that you can understand because it was in your brain, but having a pair enforces that it's written cleanly and understandably. Happy pairing!

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Point for point

  • A paired programmer can be totally disinterested, there's no guarantee of deep review. A person reviewing a PR on their own can be highly interested and provide a deep review.
  • "keeping them honest" sounds a like a horrible reason to pair up. It's like you don't trust the programmers to do a good job. Missing test, and lack of TDD can be easily spotted in PR reviews.
  • There's no evidence that code quality improves
  • Mentoring is different than pair programming, I support mentoring. As to other knoweldge transfer, sure, pair programming should improve shared knowledge on a project.
  • This sounds as though the team would be completely isolated if it weren't for pair programming. Non-pairing teams should still talk with one another, bounce ideas around, and work as a team.
Collapse
 
eljayadobe profile image
Eljay-Adobe • Edited

None of those counterpoints were what I had experienced doing paired programming. All my points are anecdotal of my experience.

Your mileage may vary, of course.

Aside: I've tried my hand at making a general purpose programming language. It's hard. (And fun. And frustrating. And rewarding. And educational.) Best of luck with Leaf!

Collapse
 
divyenduz profile image
Divyendu Singh

I agree with all the points! What is your opinion on experience difference between pairs? If you think of multiple permutations with this parameter.