Roundup '12 - (Variations in) Pair Programming (Variations) **Fully formatted shownotes can always be found at http://javaposse.com
Pair Programming is hard, because it’s social. In this session hosted by Dianne Marsh and Andrew Harmel-Law we discuss different approaches to adopting this agile practice. Thanks to Todd Costella, Jack Leow, Eirik Bjørsnøs, Chris Marks, D.J. Hagberg, Brian Gray and Victoria Vickers for their valuable input.
Recorded at the Java Posse Roundup 2012 in Crested Butte, CO
Thanks to Andrew Harmel-Law for production help.**
A Pair Programming Tarot Slides (slideshare)
“Two Brains and Two Sets of Hands”
but shared and mirrored screens
Adoption
In our experience its not always appropriate to use it
The Importance of the physical space
The desk and chair layout
The problem with “the rest of your job”
How do you fit in other, non-pair tasks like email, calls, lunch, etc?
Pair Programming Remotely ON PURPOSE
Not every day, also work co-located regularly
The “@Debt thing” example
And importance of ability to think out loud
Impact on Planning
This is slightly “black box” Sprint-level progress reporting
Pairs of different skill levels
But this is not the only way
Benefits of onboarding and knowledge sharing
Which you are more likely to see in the expert
Remember this skills transfer ought also to include the skills of pairing itself
Teach without making the other half feel they are stupid
How to pair up?
Culture of “you must pair with everyone else within a Sprint”
Just let them decide themselves
On an ad-hoc basis
Sitting next to someone while they program is not pair programming
Letting go of Driver / Navigator
Liked this on Code Retreat
But what if the skill gap is too large?
If it’s not working, just STOP
Pair Programming in Interviews
Chance to reduce stress of interviewee at every opportunity
Adoption Techniques (when none of you are experienced Pair Programmers)
Reduce the amount of “reality”
Corey Haines
Code Retreat - Jim Hurne gives a lightning talk about Code Retreats at JPR2011
Challenging the assumptions of “different skill levels”
John the UI Guy’s website: www.ilikepixels.co.uk
Managing the bits in between the pair programming sessions
And also don’t pair all time - it’s HARD WORK
Difference from working individually
But it can also be addictive
Certified Scrum Developer
Chet Hendricksen
Pairing with non-Programmers
Operations
Non-Verbal Cues
Home field advantage - always pairing at one half of the pair’s desk
Pairing Stations
Mac / Windows
Don’t make me think
International Pairing
The problems of Finnish keyboard mappings
Sharing code with a DVCS (like git) to get round the someone else’s setup problem
Makes you think in logical pieces of work
Frequency of Control Switching
“It depends”
“Trio Programming”
Everyone has a different views of the world
Advantage of cycling pairs - everyone knows all the code
And more than the code; involve the DBA too
Disadvantage of cycling pairs - context switching
the code looked like a team had written it
The positive social pressure of pairing
N.b. it can go the other way - but most folks are aware of our own failings
Lack of Resources
pairwith.us (not “pairwith.me” as mentioned)
How much Pairing?
Find the pair tasks
Breaking down tasks
Waiting until the “last responsible moment”
Remember it’s about finding the sweet spot for your team - it’s the variations
It depends
A culture of self-organising teams will avoid lots of the potential problems you might find in adoption
Test Driven Development
Thanks * Libsyn.com - http://www.libsyn.com - for hosting and bandwidth * Feedburner.com - http://www.feedburner.com - for feed redirect * Kirsty Doherty, Amy Ehmann for Java Posse artwork * Theme Music: + Opening - "Java" the parody song Copyright 1997 Broken Records and Marjorie Music Publ. (BMI), - written and performed by Loose Bruce Kerr of the Dr. Demento Show and Sun Microsystems attorney. - Based on the WWI popular song, "Ja-da." Ukelele style on the recording taught to Bruce by his dad. - Re-produced with kind permission from "Loose" Bruce Kerr - http://loosebrucekerr.libsyn.com http://www.youtube.com/watch?v=TAX0gJt-aZg
Closing - Juan Carlos Jimenez - In the House (Intro No. 1)
To contact us:
The Java Posse consists of Tor Norbye, Carl Quinn, Joe Nuxoll and Dick Wall