Who am I?
@_pedro_torres | pedrogustavotorres.com
Pedro Gustavo Torres
An Agile Geek!
2014
A li@le bit of background
What is Pair Programming?
• code is produced by two people programming: – on one task – on one workstaFon
• Two keyboards (opFonal) • Two mice (opFonal) • Two monitors mirroring (ideally)
Change roles mulFple Fmes a day
Change roles mulFple Fmes a day
Change roles mulFple Fmes a day
¡Quiz Fme! In which scenarios are the developers properly pairing? A B
C D
All the Fmes in front of…
Task C Task B
Task A Task A
RotaFon between pairs Monday Wednesday
Pair rotaFon lader
Rachel Davies, Agile Coaching
CollecFve code ownership…
Engagement / Commitment…
…valuable stand-‐ups…
…be@er integraFon of new team members…
… to skip code reviews?
…less distracFons…
…less interrupFons…
…and comfort zone wise…
…bigger comfort zone!
Two heads think be@er than one
Back in 2000 Cockburn and Williams…
• for a development-‐Fme cost of about 15% • Pair programming: – Improves design quality; – Reduces defects; – Reduces staffing risk; – Enhances technical skills; – Improves team communicaFon; – It’s more enjoyable.
Cockburn, Alistair and Williams, Laurie. The Costs and Benefits of Pair Programming
In 2008 Begel and Nagappan…
• 64,4% believed that pair programming worked well for them
• 65,4% felt that pair programming produced higher quality code
• 25,4% believed that it’s not slower than solo programming
Begel, Andrew and Nagappan, Nachiappan. Pair Programming: What’s in it for Me?
…no music / social “stuff”
So is Pair Programming for everyone?
It should not be imposed
Some personaliFes are exquisite…
soul mates
cvdd
senior
newbie
junior
…others are very very exquisite
grumpy
rock star
badass
arch enemy
Are esFmaFons affected?
What about size or length of tasks?
Is it only for mature teams?
Companies that use it?
Scholars and hands-‐on fans?
Thank you J
The whole is greater than the sums of its parts Aristotle