Page 1
Remote Pair Programming
ScanDev 2013Johannes Brodwall
Exilesoft Chief scientist
@jhannes
Guest starring: Adipa Gunesekara
Page 2
Can a distributed team still
be Communicating closely?
Page 3
After this talk• Find a remote mentor
• Pair with your remote team
Page 4
1. Why2. How3. Demonstration 4. Discussion5. Conclusion
Page 6
There are not enough devs here
Page 7
There are not enough devs here(for most values of “here”)
Page 8
(There are not enough devs here)But there are more “over there”
Page 9
Communication cost increases with distance
Page 11
Communication cost increases with distance
Page 12
Everybody knows that:Communication cost increases
with distance
Page 13
Which would you prefer:
Page 14
Which would you prefer:
A. Team sits onsite, but…uses headphones all day
speak to customer monthly
Page 15
Which would you prefer:
A. Team sits onsite, but…uses headphones all day
speak to customer monthlyB. Team 1/3 around the worldPair programs with local devs
Speak with customer daily
Page 16
Practical remote programming
Page 17
Don’t send each keystroke across the world and back
Page 18
We want a solution that is not super-expensive
Page 19
Voice sharingScreen sharing
File sharing
Page 20
Voice sharing (Skype)Screen sharing (GoToMeeting)
File sharing (Dropbox)
Page 22
Ingredient #1:Pair programming
Page 25
Ingredient #2:Test driven
development
Page 26
Failing test
Write code
Failing test
Write code
Failing test
Page 27
Ingredient #3:
Refactoring
Page 28
Failing test
Write code
Failing test
Write code
Failing test
Refactor code and tests
Refactor code and tests
Page 30
Failing test
Write code
Failing test
Write code
Failing test
Page 31
Failing test
Write code
Failing test
Write code
Failing test
Refactor code and tests
Refactor code and tests
Page 32
Failing test
Write code
Failing test
Write code
Failing test
Refactor code and tests
Refactor code and tests
Page 34
What to watch for?
Page 35
What to watch for?• Collaboration
• Problems and approaches
Page 36
Say hello to my team!
Page 37
Remember: Suboptimal network
Page 38
Please:• Talk about what you see to the person
next to you (whisper)•Tweet to @jhannes
Page 39
Demonstration(Guest starring Adipa
Gunasekara)
Page 40
Kata: Number names
Page 41
Kata: Number names1 => one
2 => two
33 => thirty three
365 => three hundred and five
…
1,230,113 => one million, two hundred and thirty thousand, one hundred and thirteen
Page 43
Benefits(Guest starring Adipa
Gunasekara)
Page 44
Faster
Lower error rate
More productive
Page 46
Team startup
Training
Job interviews
Page 47
Team startup• Me locally with customer• 3 developers in Sri Lanka
• First month: Daily remote pairing on rotation
• High bandwidth for learning tech and domain
Page 48
Dev extension• Not tried, but I think…
• One Scandinavian dev can work closely with three devs offshore
• If you can double your productivity, the math looks profitable…
Page 49
Training• You just saw it…
Page 50
Interviews• Reveals real skills
• Motivating: fun and educational => Good PR
• Pre-start training
Page 51
Decreasing the distance
Page 52
How do you decrease the distance in your
team?
Page 54
Dropbox, Skype, GoToMeeting
Page 55
It’s a small world, after all
Page 56
Find a remote pair prog partner
Page 57
Find a remote pair prog partner
Have fun
Page 58
Grab hold of me in the hallway for a pair programming session
Page 59
[email protected]
[email protected]
http://johannesbrodwall.com
http://exilesoft.com
http://twitter.com/jhannes
Thank you