Remote Pair
Programming
Agile 2013
Johannes Brodwall
Exilesoft Chief scientist
@jhannes
Can a distributed team
still Communicate
closely?
This talk is for you if
you…
Want to work with remote
colleagues
Want to practice pair
programming (more)
Want to see some TDD coding
Want to see some TDD coding
(And you’re not scared by coding)
After this talk
• Find a remote mentor
• Pair with your remote team
• Run a distributed workshop
1. Why
2. How
3. Demonstration
4. Discussion:
Distributed agile
Why global teams
There are not enough devs here
There are not enough devs here
(for most values of “here”)
(There are not enough devs here)
But there are more “over there”
But
Communication cost increases
with distance
Luckily
Communication cost increases
with distance
Everybody knows that:
Communication cost increases
with distance
Which would you prefer:
Which would you prefer:
A. Team sits onsite, but…
uses headphones all day
speak to customer monthly
Which would you prefer:
A. Team sits onsite, but…
uses headphones all day
speak to customer monthly
B. Team 1/3 around the...
Distribution change
communication
Huge email discussions
Large meetings
Small group discussions
Structured collaboration
Practical remote
programming
Don’t send each keystroke
across the world and back
We want a solution that is
not super-expensive
Voice sharing
Screen sharing
File sharing
Voice sharing (Skype)
Screen sharing (GoToMeeting)
File sharing (Dropbox)
Ping pong
Ingredient #1:
Pair programming
Ingredient #2:
Test driven
development
Failing test
Write code
Failing test
Write code
Failing test
Ingredient #3:
Refactoring
Failing test
Write code
Failing test
Write code
Failing test
Refactor code
and tests
Refactor code
and tests
Put together
Failing test
Write code
Failing test
Write code
Failing test
Failing test
Write code
Failing test
Write code
Failing test
Refactor code
and tests
Refactor code
and tests
Failing test
Write code
Failing test
Write code
Failing test
Refactor code
and tests
Refactor code
and tests
Demonstration
What to watch for?
What to watch for?
• Collaboration
• Problems and approaches
Say hello to my team!
Remember: Suboptimal
network
Please:
• Talk about what you see to the person
next to you (whisper)
•Tweet to @jhannes
Demonstration
(Guest starring Niruka
Ruhunage)
Kata: Bank OCR
Kata: Bank OCR
_ _ _ _ _ _ _ _ _
|_||_||_||_||_||_||_||_||_|
|_||_||_||_||_||_||_||_||_|
=> 888888888 AMB [888886888, 8888...
Discussion
Benefits
(Guest starring Niruka
Ruhunage)
Domain knowledge
Also involving the quiet
ones
Grow technically
What did you see?
Dealing with time-lag
Helping each other
Communicating ideas
Usage
Dev extension
Training
Job interviews
Dev extension
Training
• You just saw it…
Interviews
• Reveals real skills
• Motivating: fun and educational
=> Good PR
• Pre-start training
Distributed
workshops
First week
Monday Tuesday Wednesday Thursday Friday
Goal,
Stakeholders
Dev baseline Dev baseline
Review usage
Define
progress,
Storie...
1. Teams of 3 (distributed)
2. Create goal statements –
10 minutes
3. Consensus goal
For some stakeholder
Who has a goal
The system/activity/increment
Is a type of system/activity
Which gives a capability/fe...
For a busy sales officer
Who wants to find good prospects to contact
when in a city
The CRM customer radar
Is a mobile map...
What do we get
from this?
Small groups
Clear task
Cross boundaries
Distributed
retrospective
Example agenda
1. Defining word
2. Groups discussion: achievements
and challenges
3. Whole team discuss where are we
4. Round the table s...
Lessons
Small groups
Clear task
Eye contact doesn’t work
Decreasing the
distance
How do you decrease
the distance in your
team?
Conclusions
More distribution =>
more structured communication
Dropbox, Skype, GoToMeeting
It’s a small world, after all
Find a remote pair prog partner
Find a remote pair prog partner
Have fun
Grab hold of me in the hallway
for a pair programming session
jbr@exilesoft.com
nru@exilesoft.com
http://johannesbrodwall.com
http://exilesoft.com
http://twitter.com/jhannes
Thank you
2013 08-07 agile 2013 - remote pair programming
2013 08-07 agile 2013 - remote pair programming
2013 08-07 agile 2013 - remote pair programming
2013 08-07 agile 2013 - remote pair programming
2013 08-07 agile 2013 - remote pair programming
2013 08-07 agile 2013 - remote pair programming
2013 08-07 agile 2013 - remote pair programming
Upcoming SlideShare
Loading in …5
×

2013 08-07 agile 2013 - remote pair programming

4,140 views

Published on

In this talk, we will go through a practical approach for remote pair programming adopted for high-latency situations. We will demonstrate remote pair programming with a live example and we will discuss the advantages and usages of the approach.

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,140
On SlideShare
0
From Embeds
0
Number of Embeds
130
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

2013 08-07 agile 2013 - remote pair programming

  1. 1. Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes
  2. 2. Can a distributed team still Communicate closely?
  3. 3. This talk is for you if you…
  4. 4. Want to work with remote colleagues
  5. 5. Want to practice pair programming (more)
  6. 6. Want to see some TDD coding
  7. 7. Want to see some TDD coding (And you’re not scared by coding)
  8. 8. After this talk • Find a remote mentor • Pair with your remote team • Run a distributed workshop
  9. 9. 1. Why 2. How 3. Demonstration 4. Discussion: Distributed agile
  10. 10. Why global teams
  11. 11. There are not enough devs here
  12. 12. There are not enough devs here (for most values of “here”)
  13. 13. (There are not enough devs here) But there are more “over there”
  14. 14. But
  15. 15. Communication cost increases with distance
  16. 16. Luckily
  17. 17. Communication cost increases with distance
  18. 18. Everybody knows that: Communication cost increases with distance
  19. 19. Which would you prefer:
  20. 20. Which would you prefer: A. Team sits onsite, but… uses headphones all day speak to customer monthly
  21. 21. Which would you prefer: A. Team sits onsite, but… uses headphones all day speak to customer monthly B. Team 1/3 around the world Pair programs with local devs Speak with customer daily
  22. 22. Distribution change communication
  23. 23. Huge email discussions
  24. 24. Large meetings
  25. 25. Small group discussions
  26. 26. Structured collaboration
  27. 27. Practical remote programming
  28. 28. Don’t send each keystroke across the world and back
  29. 29. We want a solution that is not super-expensive
  30. 30. Voice sharing Screen sharing File sharing
  31. 31. Voice sharing (Skype) Screen sharing (GoToMeeting) File sharing (Dropbox)
  32. 32. Ping pong
  33. 33. Ingredient #1: Pair programming
  34. 34. Ingredient #2: Test driven development
  35. 35. Failing test Write code Failing test Write code Failing test
  36. 36. Ingredient #3: Refactoring
  37. 37. Failing test Write code Failing test Write code Failing test Refactor code and tests Refactor code and tests
  38. 38. Put together
  39. 39. Failing test Write code Failing test Write code Failing test
  40. 40. Failing test Write code Failing test Write code Failing test Refactor code and tests Refactor code and tests
  41. 41. Failing test Write code Failing test Write code Failing test Refactor code and tests Refactor code and tests
  42. 42. Demonstration
  43. 43. What to watch for?
  44. 44. What to watch for? • Collaboration • Problems and approaches
  45. 45. Say hello to my team!
  46. 46. Remember: Suboptimal network
  47. 47. Please: • Talk about what you see to the person next to you (whisper) •Tweet to @jhannes
  48. 48. Demonstration (Guest starring Niruka Ruhunage)
  49. 49. Kata: Bank OCR
  50. 50. Kata: Bank OCR _ _ _ _ _ _ _ _ _ |_||_||_||_||_||_||_||_||_| |_||_||_||_||_||_||_||_||_| => 888888888 AMB [888886888, 888888988, 888888880]
  51. 51. Discussion
  52. 52. Benefits (Guest starring Niruka Ruhunage)
  53. 53. Domain knowledge Also involving the quiet ones Grow technically
  54. 54. What did you see?
  55. 55. Dealing with time-lag
  56. 56. Helping each other
  57. 57. Communicating ideas
  58. 58. Usage
  59. 59. Dev extension Training Job interviews
  60. 60. Dev extension
  61. 61. Training • You just saw it…
  62. 62. Interviews • Reveals real skills • Motivating: fun and educational => Good PR • Pre-start training
  63. 63. Distributed workshops
  64. 64. First week
  65. 65. Monday Tuesday Wednesday Thursday Friday Goal, Stakeholders Dev baseline Dev baseline Review usage Define progress, Stories Wrap up docs Dev baseline Lunch Lunch Lunch Lunch Lunch Look at what’s going on today Stakeholder, Usage Usage review, Context, Domain, Deployment Refine models Review, Retrospective
  66. 66. 1. Teams of 3 (distributed) 2. Create goal statements – 10 minutes 3. Consensus goal
  67. 67. For some stakeholder Who has a goal The system/activity/increment Is a type of system/activity Which gives a capability/feature. Unlike most relevant alternative This has a distinguishing advantage.
  68. 68. For a busy sales officer Who wants to find good prospects to contact when in a city The CRM customer radar Is a mobile map application Which displays nearby customers on a map. Unlike searching for prospects in CRM portal This provides the information at a glance.
  69. 69. What do we get from this?
  70. 70. Small groups Clear task Cross boundaries
  71. 71. Distributed retrospective
  72. 72. Example agenda
  73. 73. 1. Defining word 2. Groups discussion: achievements and challenges 3. Whole team discuss where are we 4. Round the table suggest actions 5. Hopes for the future
  74. 74. Lessons
  75. 75. Small groups Clear task Eye contact doesn’t work
  76. 76. Decreasing the distance
  77. 77. How do you decrease the distance in your team?
  78. 78. Conclusions
  79. 79. More distribution => more structured communication
  80. 80. Dropbox, Skype, GoToMeeting
  81. 81. It’s a small world, after all
  82. 82. Find a remote pair prog partner
  83. 83. Find a remote pair prog partner Have fun
  84. 84. Grab hold of me in the hallway for a pair programming session
  85. 85. jbr@exilesoft.com nru@exilesoft.com http://johannesbrodwall.com http://exilesoft.com http://twitter.com/jhannes Thank you

×