Successfully reported this slideshow.

2013 08-07 agile 2013 - remote pair programming

2

Share

Loading in …3
×
1 of 92
1 of 92

2013 08-07 agile 2013 - remote pair programming

2

Share

Download to read offline

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.

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.

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

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

×