SlideShare a Scribd company logo
1 of 135
Download to read offline
Remote Pair Programming

                                A Guide for
                           Distributed Agile Teams




Wednesday, August 15, 12
Agenda
                           Overview
                            People
                           Challenges
               “You’re Remote Pairing Today”
                           Technology
Wednesday, August 15, 12
Feedback

                           http://svy.mk/pairprogram




Wednesday, August 15, 12
Who?




Wednesday, August 15, 12
Who?
                             Joe Moore - @joem
                            joe.moore@gmail.com


                       Pivotal Labs - @pivotallabs
                           http://svy.mk/pairprogram
Wednesday, August 15, 12
Who?

                           Pair programming
                              since 2000




Wednesday, August 15, 12
Who?

                           Remote pair programming
                             full time since 2010




Wednesday, August 15, 12
Pair Programming?




Wednesday, August 15, 12
Pair Programming?

                               Two developers
                             coding on the same
                           development workstation



Wednesday, August 15, 12
Pair Programming?

         Solving the same problem, at the
               same time, together




Wednesday, August 15, 12
Pair Programming?
             • Higher quality • Fewer defects
                • Focus • Intensity • Faster
               problem solving • Knowledge
                  transfer • Code review •



Wednesday, August 15, 12
What?


                           Remote pair programming




Wednesday, August 15, 12
What?

          Pair programming, but not at the
              same physical computer




Wednesday, August 15, 12
What?


                           What does it look like?




Wednesday, August 15, 12
Wednesday, August 15, 12
Wednesday, August 15, 12
Wednesday, August 15, 12
Wednesday, August 15, 12
Video
                            Remote pairing:
                           debugging a phone


                  http://youtu.be/mfoJ6mBVi2w


Wednesday, August 15, 12
Challenges




Wednesday, August 15, 12
Challenges




Wednesday, August 15, 12
Video

                                Remote pairing:
                           (listen for both our voices)


            http://youtu.be/CWJMzW1ZqNE

Wednesday, August 15, 12
Wednesday, August 15, 12
Wednesday, August 15, 12
Video
                               Remote pairing:
                           coding via screen sharing


                  http://youtu.be/4PkT1bbmA4I

Wednesday, August 15, 12
Wednesday, August 15, 12
Wednesday, August 15, 12
When?


                           Remote pair programming




Wednesday, August 15, 12
When?

                              Your project
                            is split between
                           multiple locations



Wednesday, August 15, 12
When?

                             You work for a
                           “virtual company”




Wednesday, August 15, 12
When?

                             Your project has
                           remote developers




Wednesday, August 15, 12
When?

                           Someone needs another
                             person’s expertise
                                 but they’re
                               not co-located


Wednesday, August 15, 12
When?

                               You’re giving a
                           remote pairing interview




Wednesday, August 15, 12
Why?


                           Remote pair programming




Wednesday, August 15, 12
Why?

                           RPP can have the
                           same benefits as
                      in-person pair programming



Wednesday, August 15, 12
Why?
             • Higher quality • Fewer defects
                • Focus • Intensity • Faster
               problem solving • Knowledge
                  transfer • Code review •



Wednesday, August 15, 12
Why?

                           Counteract remote
                           development pitfalls




Wednesday, August 15, 12
Why?
             • Higher quality • Fewer defects
               • Focus • Intensity • Faster
             problem solving • Knowledge
                 transfer • Code review •



Wednesday, August 15, 12
Why?


                           Silo is a four-letter word




Wednesday, August 15, 12
Why?
               Some people like it better than
                   in-person pairing?




Wednesday, August 15, 12
Why?
               Some people like it better than
                   in-person pairing?

                   It’s true! I’ve heard it multiple
                                 times!

Wednesday, August 15, 12
How?


                           Remote pair programming




Wednesday, August 15, 12
How?

                           It’s about the people,
                            not just technologies




Wednesday, August 15, 12
How?

                      You can’t fix a team of tools
                               with tools




Wednesday, August 15, 12
How?


                           Patience




Wednesday, August 15, 12
How?

                             Express your ideas
                           clearly and concisely




Wednesday, August 15, 12
How?

                            Extremely good
                           pairing etiquette




Wednesday, August 15, 12
How?

                            “Do you mind if I drive?”
                “I’m going to grab the mouse.”
                           “Can I look at something?”
                             “Go ahead and drive.”

Wednesday, August 15, 12
How?

                         Supportive
                operations/infrastructure team




Wednesday, August 15, 12
How?


                           A good attitude




Wednesday, August 15, 12
Wednesday, August 15, 12
Wednesday, August 15, 12
Wednesday, August 15, 12
Wednesday, August 15, 12
How?

                     Team must be
              generous and understanding




Wednesday, August 15, 12
Wednesday, August 15, 12
Wednesday, August 15, 12
How?


                           Do’s and Don’ts




Wednesday, August 15, 12
How?
                            Do…
                            • Be patient
                • Be assertive about being included
              • Make an effort to include remote dev
                   • Take breaks, play ping pong
                   • Use video (especially at first)


Wednesday, August 15, 12
How?
                           Don’t…
      x Exclude remotes from local conversations
          x Exclude remotes from meetings
              x Be the strong, silent type
                  x Just walk away
         x Lay your headphones on keyboard


Wednesday, August 15, 12
How?


                           Regarding Video




Wednesday, August 15, 12
How?

                           I’m striving for a
                            “high fidelity”
                              experience



Wednesday, August 15, 12
Wednesday, August 15, 12
Wednesday, August 15, 12
How?

                           Let’s play a game called:
                             “What’s going on?”




Wednesday, August 15, 12
What’s going on?




Wednesday, August 15, 12
What’s going on?




Wednesday, August 15, 12
What’s going on?




Wednesday, August 15, 12
What’s going on?




Wednesday, August 15, 12
What’s going on?




Wednesday, August 15, 12
What’s going on?




Wednesday, August 15, 12
Challenges


                           Remote pair programming




Wednesday, August 15, 12
Challenges

                       The same challenges as
                      in-person pair programming




Wednesday, August 15, 12
Challenges

               Lacks some of the traditional
                 work-from-home benefits
                (especially full-time pairing)



Wednesday, August 15, 12
Challenges


                           Lack of shared facilities




Wednesday, August 15, 12
Challenges

                           Lack of shared facilities

               • Whiteboards • Notecards
            • Big visible charts • Information
                  radiators • Lunch area
                • Hallway conversations •
Wednesday, August 15, 12
Wednesday, August 15, 12
Wednesday, August 15, 12
Wednesday, August 15, 12
Challenges


                           2 timezones is hard




Wednesday, August 15, 12
Challenges


                           3 timezones is harder




Wednesday, August 15, 12
Challenges


                           12 timezones is…???




Wednesday, August 15, 12
Challenges


                           Technology gremlins




Wednesday, August 15, 12
Challenges
                              Technology gremlins

                             • flaky internet • firewalls
                            • Skype • crappy software
                           • broken hardware • Skype
                                  • VPNs • SKYPE

Wednesday, August 15, 12
Skype • Skype • Skype • Skype • Sk
ype • Skype • Skyyyyyyyype • Skyp
Skype • Skype • Skype • Skype • Sk
SKYYYYYYYYYYYYYYYYYYYYYY
YYYYYYYYYYYYYYYPE!!!!!!! • Sky
  • Skype • Skype • Skype • Skype

   Skype •                 Skyyyye!!!
    Skype • Skype • Skype • Skype •
  Skyyyyyyyyyyyyype!!! • Skype • Sky
Wednesday, August 15, 12
Challenges
                             Working from home?


                           Get savvy with your home
                                   network


Wednesday, August 15, 12
But what about…

                 Meetings, stand-ups, scrums,
                   planning sessions, etc?




Wednesday, August 15, 12
Wednesday, August 15, 12
“You’re remote pairing today”

                           Now what?




Wednesday, August 15, 12
“You’re remote pairing today”
          1. Find a headset
          2. Exchange Skype info and invites
          3. Call, preferably with video
          4. Talk about RPP experiences
          5. Agree on OS, editor, dev setup
          6. Choose and try a screen sharing tech

Wednesday, August 15, 12
“You’re remote pairing today”

                            Remember the
                           Do’s and Don’ts




Wednesday, August 15, 12
“You’re remote pairing today”

                           Remote pairing interviews




Wednesday, August 15, 12
“You’re remote pairing today”
                           Remote pairing interviews

          See previous list, and also:
          • Send interviewee a setup email 24
                      hours before the interview
          • Consider browser-based screen
                      sharing for simplicity (more later)

Wednesday, August 15, 12
“You’re remote pairing today”
                           Remote pairing interviews
         Hello Sally --

         I'm Joe Moore, software engineer at Pivotal Labs. You and I will be remote
         pairing today! Do you mind answering a couple of questions and performing a
         little setup?

         • What is your Skype ID?
         • What operating system are you using? Are you on a
         Mac, PC, or Linux machine?
         • What is your screen resolution?
         If you could, please download and install TeamViewer, which we will likely use
Wednesday, August 15, 12
Questions


         before we talk about technology?




Wednesday, August 15, 12
The Tech




Wednesday, August 15, 12
The Tech


                           There will be problems




Wednesday, August 15, 12
The Tech


                   Fast high speed Internet,
                 especially upload bandwidth
                         from the host


Wednesday, August 15, 12
The Tech

                     Remember wired networks?


                           They’re fast!


Wednesday, August 15, 12
The Tech

                                    VPN:
                           gateway through firewalls




Wednesday, August 15, 12
The Tech: Screen Sharing


                   Many options depending on
                    networks speed, firewalls,
                          ease of use


Wednesday, August 15, 12
The Tech: Screen Sharing

                           Full desktop sharing
                                    or
                             Terminal based


Wednesday, August 15, 12
The Tech


                           Full Desktop Sharing




Wednesday, August 15, 12
The Tech: Screen Sharing
                             Full Desktop Sharing
                                 Considerations
                         Cross
                                     Works across Windows, Mac, Linux
                       Platform?
                                      Some (usually) punch through
                           No VPN
                                         firewalls, some don’t
                           In Web      Quickest way to get a session
                           Browser     going, but sometimes limiting
                           2-Way     Presentation software only allows
                           Control         the host to control
Wednesday, August 15, 12
The Tech: Screen Sharing
                           Full Desktop Sharing
                           Cross Platform   No VPN   In Web Browser   2-Way Control

                            ✓(VNC)            X           X                ✓
                              ✓               X           X                ✓
                                X            ✓            X                ✓
                                ✓            ✓            ✓                ✓
                                ✓            ✓            ✓                ✓
                                ✓            ✓            ✓                ✓
                                ✓            ✓            X                X
                                ✓            ✓            ✓                X

                                      Joe’s Recommendations
Wednesday, August 15, 12
The Tech


                           Screen Sharing


     /System/Library/CoreServices

Wednesday, August 15, 12
The Tech: Screen Sharing
                                                 o r
                             f
                           Full Desktop Sharing

                           e
                          s t
                                 2-Way Control




                         u n
                                      ✓


                        a a
                                      ✓


                       P R
                                      ✓
                                      ✓
                                      ✓
                                      ✓
                                      X
                                      X



Wednesday, August 15, 12
The Tech: “Screen” Sharing
                    tmux – shared ssh sessions




Wednesday, August 15, 12
The Tech: “Screen” Sharing
                    tmux – shared ssh sessions

 •       Fast!
 •       Good for Vim, Emacs editors
 •       Popular in Ruby, Scala communities
 •       Best for low bandwidth connections
 •       Addictive usage model


Wednesday, August 15, 12
The Tech: “Screen” Sharing
                           tmux cont…

 •       Requires ssh access, possibly VPN
 •       Learning curve using tmux commands
 •       Desktop screen sharing for some activities
 •       Not for IDEs - iOS, Java, .NET


Wednesday, August 15, 12
Wednesday, August 15, 12
The Tech


                           Video Conferencing




Wednesday, August 15, 12
The Tech


                           Video Conferencing




Wednesday, August 15, 12
The Tech
                           Video Conferencing




                       Love it or hate it,
                  Skype is ubiquitous and has
                    great echo cancelation
Wednesday, August 15, 12
The Tech
                           Video Conferencing




                                          http://www.cisco.com/web/telepresence




Wednesday, August 15, 12
Development Workstation




Wednesday, August 15, 12
Computer for
                           Development




Wednesday, August 15, 12
Laptop
                  for
                Skype




Wednesday, August 15, 12
Snowball
                            Mic for
                            Groups
                              or
                            Office




Wednesday, August 15, 12
Speakers
                              for
                            Groups
                               or
                            Office



Wednesday, August 15, 12
Headest




Wednesday, August 15, 12
Long Term Remote Pairing




Wednesday, August 15, 12
Long Term Remote Pairing

                  Works best with
              dedicated RPP stations
                       and
           dedicated audio/video laptops


Wednesday, August 15, 12
Long Term Remote Pairing

                  Dedicated stations:
            everyone knows where to find
                  the remote people



Wednesday, August 15, 12
Random Thoughts


                           Telepresence, etc.



Wednesday, August 15, 12
Conference Rooms

                           “Skype-enabled”
                            meeting rooms



Wednesday, August 15, 12
Conference Rooms




Wednesday, August 15, 12
Conference Rooms




                                     http://www.cisco.com/web/telepresence




Wednesday, August 15, 12
What about iPads?




Wednesday, August 15, 12
What about iPads?


                              Promising!



Wednesday, August 15, 12
What about iPads?




Wednesday, August 15, 12
What about ROBOTS!?!?!




                           http://anybots.com

Wednesday, August 15, 12
OMG ROBOTS!!!!!!




  http://internetdebris.blogspot.com/




                                         http://www.newscientist.com
Wednesday, August 15, 12
OMG ROBOTS?????




  http://internetdebris.blogspot.com/




                                        ???
                                         http://www.newscientist.com
Wednesday, August 15, 12
Thank You!
                                  Joe Moore
                                 Pivotal Labs
                                    @joem
                            joe.moore@gmail.com
                           http://svy.mk/pairprogram

Wednesday, August 15, 12

More Related Content

Similar to Remote pair programming conference 2012

99 inception-deck
99 inception-deck99 inception-deck
99 inception-deckdrewz lin
 
Developer Tools State of the Union
Developer Tools State of the UnionDeveloper Tools State of the Union
Developer Tools State of the UnionAtlassian
 
Keynote Day 2 - Atlassian Summit 2012
Keynote Day 2 - Atlassian Summit 2012Keynote Day 2 - Atlassian Summit 2012
Keynote Day 2 - Atlassian Summit 2012Atlassian
 
Agile Doesn't Work - Agile Twin Cities
Agile Doesn't Work - Agile Twin CitiesAgile Doesn't Work - Agile Twin Cities
Agile Doesn't Work - Agile Twin CitiesAndrew Shafer
 
Keynote Day 1 - Atlassian Summit 2012
Keynote Day 1 - Atlassian Summit 2012Keynote Day 1 - Atlassian Summit 2012
Keynote Day 1 - Atlassian Summit 2012Atlassian
 
Social networking for teachers and coaches
Social networking for teachers and coachesSocial networking for teachers and coaches
Social networking for teachers and coachesAshley Casey
 
Don't Build a Power Glove: Talk to Your Users!
Don't Build a Power Glove: Talk to Your Users!Don't Build a Power Glove: Talk to Your Users!
Don't Build a Power Glove: Talk to Your Users!Effective
 
Working With Social APIs - SoMeT12
Working With Social APIs - SoMeT12Working With Social APIs - SoMeT12
Working With Social APIs - SoMeT12Mario Vasquez
 
Eclipse con 2012 - Devops - Luke Kanies
Eclipse con 2012 - Devops - Luke KaniesEclipse con 2012 - Devops - Luke Kanies
Eclipse con 2012 - Devops - Luke KaniesPuppet
 
Startup accelerators
Startup acceleratorsStartup accelerators
Startup acceleratorsNate Hermes
 
Innovate, Learn, Deliver: Staying ahead in turbulent times
Innovate, Learn, Deliver: Staying ahead in turbulent timesInnovate, Learn, Deliver: Staying ahead in turbulent times
Innovate, Learn, Deliver: Staying ahead in turbulent timesScott Shaw
 
QTB Innovate, Learn, Deliver - Thoughtworks - - AWS Australian Summit
QTB Innovate, Learn, Deliver - Thoughtworks - - AWS Australian SummitQTB Innovate, Learn, Deliver - Thoughtworks - - AWS Australian Summit
QTB Innovate, Learn, Deliver - Thoughtworks - - AWS Australian SummitAmazon Web Services
 

Similar to Remote pair programming conference 2012 (14)

99 inception-deck
99 inception-deck99 inception-deck
99 inception-deck
 
Sketching for Design
Sketching for DesignSketching for Design
Sketching for Design
 
Developer Tools State of the Union
Developer Tools State of the UnionDeveloper Tools State of the Union
Developer Tools State of the Union
 
Keynote Day 2 - Atlassian Summit 2012
Keynote Day 2 - Atlassian Summit 2012Keynote Day 2 - Atlassian Summit 2012
Keynote Day 2 - Atlassian Summit 2012
 
Agile Doesn't Work - Agile Twin Cities
Agile Doesn't Work - Agile Twin CitiesAgile Doesn't Work - Agile Twin Cities
Agile Doesn't Work - Agile Twin Cities
 
Sd
SdSd
Sd
 
Keynote Day 1 - Atlassian Summit 2012
Keynote Day 1 - Atlassian Summit 2012Keynote Day 1 - Atlassian Summit 2012
Keynote Day 1 - Atlassian Summit 2012
 
Social networking for teachers and coaches
Social networking for teachers and coachesSocial networking for teachers and coaches
Social networking for teachers and coaches
 
Don't Build a Power Glove: Talk to Your Users!
Don't Build a Power Glove: Talk to Your Users!Don't Build a Power Glove: Talk to Your Users!
Don't Build a Power Glove: Talk to Your Users!
 
Working With Social APIs - SoMeT12
Working With Social APIs - SoMeT12Working With Social APIs - SoMeT12
Working With Social APIs - SoMeT12
 
Eclipse con 2012 - Devops - Luke Kanies
Eclipse con 2012 - Devops - Luke KaniesEclipse con 2012 - Devops - Luke Kanies
Eclipse con 2012 - Devops - Luke Kanies
 
Startup accelerators
Startup acceleratorsStartup accelerators
Startup accelerators
 
Innovate, Learn, Deliver: Staying ahead in turbulent times
Innovate, Learn, Deliver: Staying ahead in turbulent timesInnovate, Learn, Deliver: Staying ahead in turbulent times
Innovate, Learn, Deliver: Staying ahead in turbulent times
 
QTB Innovate, Learn, Deliver - Thoughtworks - - AWS Australian Summit
QTB Innovate, Learn, Deliver - Thoughtworks - - AWS Australian SummitQTB Innovate, Learn, Deliver - Thoughtworks - - AWS Australian Summit
QTB Innovate, Learn, Deliver - Thoughtworks - - AWS Australian Summit
 

More from drewz lin

Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearydrewz lin
 
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013drewz lin
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13drewz lin
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrichdrewz lin
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2drewz lin
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2drewz lin
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfdrewz lin
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equaldrewz lin
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21drewz lin
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansendrewz lin
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaoladrewz lin
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsdrewz lin
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentationdrewz lin
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsdrewz lin
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martindrewz lin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowaspdrewz lin
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usadrewz lin
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013drewz lin
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架drewz lin
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈drewz lin
 

More from drewz lin (20)

Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-keary
 
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrich
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equal
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansen
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_edits
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentation
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowasp
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usa
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈
 

Remote pair programming conference 2012

  • 1. Remote Pair Programming A Guide for Distributed Agile Teams Wednesday, August 15, 12
  • 2. Agenda Overview People Challenges “You’re Remote Pairing Today” Technology Wednesday, August 15, 12
  • 3. Feedback http://svy.mk/pairprogram Wednesday, August 15, 12
  • 5. Who? Joe Moore - @joem joe.moore@gmail.com Pivotal Labs - @pivotallabs http://svy.mk/pairprogram Wednesday, August 15, 12
  • 6. Who? Pair programming since 2000 Wednesday, August 15, 12
  • 7. Who? Remote pair programming full time since 2010 Wednesday, August 15, 12
  • 9. Pair Programming? Two developers coding on the same development workstation Wednesday, August 15, 12
  • 10. Pair Programming? Solving the same problem, at the same time, together Wednesday, August 15, 12
  • 11. Pair Programming? • Higher quality • Fewer defects • Focus • Intensity • Faster problem solving • Knowledge transfer • Code review • Wednesday, August 15, 12
  • 12. What? Remote pair programming Wednesday, August 15, 12
  • 13. What? Pair programming, but not at the same physical computer Wednesday, August 15, 12
  • 14. What? What does it look like? Wednesday, August 15, 12
  • 19. Video Remote pairing: debugging a phone http://youtu.be/mfoJ6mBVi2w Wednesday, August 15, 12
  • 22. Video Remote pairing: (listen for both our voices) http://youtu.be/CWJMzW1ZqNE Wednesday, August 15, 12
  • 25. Video Remote pairing: coding via screen sharing http://youtu.be/4PkT1bbmA4I Wednesday, August 15, 12
  • 28. When? Remote pair programming Wednesday, August 15, 12
  • 29. When? Your project is split between multiple locations Wednesday, August 15, 12
  • 30. When? You work for a “virtual company” Wednesday, August 15, 12
  • 31. When? Your project has remote developers Wednesday, August 15, 12
  • 32. When? Someone needs another person’s expertise but they’re not co-located Wednesday, August 15, 12
  • 33. When? You’re giving a remote pairing interview Wednesday, August 15, 12
  • 34. Why? Remote pair programming Wednesday, August 15, 12
  • 35. Why? RPP can have the same benefits as in-person pair programming Wednesday, August 15, 12
  • 36. Why? • Higher quality • Fewer defects • Focus • Intensity • Faster problem solving • Knowledge transfer • Code review • Wednesday, August 15, 12
  • 37. Why? Counteract remote development pitfalls Wednesday, August 15, 12
  • 38. Why? • Higher quality • Fewer defects • Focus • Intensity • Faster problem solving • Knowledge transfer • Code review • Wednesday, August 15, 12
  • 39. Why? Silo is a four-letter word Wednesday, August 15, 12
  • 40. Why? Some people like it better than in-person pairing? Wednesday, August 15, 12
  • 41. Why? Some people like it better than in-person pairing? It’s true! I’ve heard it multiple times! Wednesday, August 15, 12
  • 42. How? Remote pair programming Wednesday, August 15, 12
  • 43. How? It’s about the people, not just technologies Wednesday, August 15, 12
  • 44. How? You can’t fix a team of tools with tools Wednesday, August 15, 12
  • 45. How? Patience Wednesday, August 15, 12
  • 46. How? Express your ideas clearly and concisely Wednesday, August 15, 12
  • 47. How? Extremely good pairing etiquette Wednesday, August 15, 12
  • 48. How? “Do you mind if I drive?” “I’m going to grab the mouse.” “Can I look at something?” “Go ahead and drive.” Wednesday, August 15, 12
  • 49. How? Supportive operations/infrastructure team Wednesday, August 15, 12
  • 50. How? A good attitude Wednesday, August 15, 12
  • 55. How? Team must be generous and understanding Wednesday, August 15, 12
  • 58. How? Do’s and Don’ts Wednesday, August 15, 12
  • 59. How? Do… • Be patient • Be assertive about being included • Make an effort to include remote dev • Take breaks, play ping pong • Use video (especially at first) Wednesday, August 15, 12
  • 60. How? Don’t… x Exclude remotes from local conversations x Exclude remotes from meetings x Be the strong, silent type x Just walk away x Lay your headphones on keyboard Wednesday, August 15, 12
  • 61. How? Regarding Video Wednesday, August 15, 12
  • 62. How? I’m striving for a “high fidelity” experience Wednesday, August 15, 12
  • 65. How? Let’s play a game called: “What’s going on?” Wednesday, August 15, 12
  • 72. Challenges Remote pair programming Wednesday, August 15, 12
  • 73. Challenges The same challenges as in-person pair programming Wednesday, August 15, 12
  • 74. Challenges Lacks some of the traditional work-from-home benefits (especially full-time pairing) Wednesday, August 15, 12
  • 75. Challenges Lack of shared facilities Wednesday, August 15, 12
  • 76. Challenges Lack of shared facilities • Whiteboards • Notecards • Big visible charts • Information radiators • Lunch area • Hallway conversations • Wednesday, August 15, 12
  • 80. Challenges 2 timezones is hard Wednesday, August 15, 12
  • 81. Challenges 3 timezones is harder Wednesday, August 15, 12
  • 82. Challenges 12 timezones is…??? Wednesday, August 15, 12
  • 83. Challenges Technology gremlins Wednesday, August 15, 12
  • 84. Challenges Technology gremlins • flaky internet • firewalls • Skype • crappy software • broken hardware • Skype • VPNs • SKYPE Wednesday, August 15, 12
  • 85. Skype • Skype • Skype • Skype • Sk ype • Skype • Skyyyyyyyype • Skyp Skype • Skype • Skype • Skype • Sk SKYYYYYYYYYYYYYYYYYYYYYY YYYYYYYYYYYYYYYPE!!!!!!! • Sky • Skype • Skype • Skype • Skype Skype • Skyyyye!!! Skype • Skype • Skype • Skype • Skyyyyyyyyyyyyype!!! • Skype • Sky Wednesday, August 15, 12
  • 86. Challenges Working from home? Get savvy with your home network Wednesday, August 15, 12
  • 87. But what about… Meetings, stand-ups, scrums, planning sessions, etc? Wednesday, August 15, 12
  • 89. “You’re remote pairing today” Now what? Wednesday, August 15, 12
  • 90. “You’re remote pairing today” 1. Find a headset 2. Exchange Skype info and invites 3. Call, preferably with video 4. Talk about RPP experiences 5. Agree on OS, editor, dev setup 6. Choose and try a screen sharing tech Wednesday, August 15, 12
  • 91. “You’re remote pairing today” Remember the Do’s and Don’ts Wednesday, August 15, 12
  • 92. “You’re remote pairing today” Remote pairing interviews Wednesday, August 15, 12
  • 93. “You’re remote pairing today” Remote pairing interviews See previous list, and also: • Send interviewee a setup email 24 hours before the interview • Consider browser-based screen sharing for simplicity (more later) Wednesday, August 15, 12
  • 94. “You’re remote pairing today” Remote pairing interviews Hello Sally -- I'm Joe Moore, software engineer at Pivotal Labs. You and I will be remote pairing today! Do you mind answering a couple of questions and performing a little setup? • What is your Skype ID? • What operating system are you using? Are you on a Mac, PC, or Linux machine? • What is your screen resolution? If you could, please download and install TeamViewer, which we will likely use Wednesday, August 15, 12
  • 95. Questions before we talk about technology? Wednesday, August 15, 12
  • 97. The Tech There will be problems Wednesday, August 15, 12
  • 98. The Tech Fast high speed Internet, especially upload bandwidth from the host Wednesday, August 15, 12
  • 99. The Tech Remember wired networks? They’re fast! Wednesday, August 15, 12
  • 100. The Tech VPN: gateway through firewalls Wednesday, August 15, 12
  • 101. The Tech: Screen Sharing Many options depending on networks speed, firewalls, ease of use Wednesday, August 15, 12
  • 102. The Tech: Screen Sharing Full desktop sharing or Terminal based Wednesday, August 15, 12
  • 103. The Tech Full Desktop Sharing Wednesday, August 15, 12
  • 104. The Tech: Screen Sharing Full Desktop Sharing Considerations Cross Works across Windows, Mac, Linux Platform? Some (usually) punch through No VPN firewalls, some don’t In Web Quickest way to get a session Browser going, but sometimes limiting 2-Way Presentation software only allows Control the host to control Wednesday, August 15, 12
  • 105. The Tech: Screen Sharing Full Desktop Sharing Cross Platform No VPN In Web Browser 2-Way Control ✓(VNC) X X ✓ ✓ X X ✓ X ✓ X ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ X X ✓ ✓ ✓ X Joe’s Recommendations Wednesday, August 15, 12
  • 106. The Tech Screen Sharing /System/Library/CoreServices Wednesday, August 15, 12
  • 107. The Tech: Screen Sharing o r f Full Desktop Sharing e s t 2-Way Control u n ✓ a a ✓ P R ✓ ✓ ✓ ✓ X X Wednesday, August 15, 12
  • 108. The Tech: “Screen” Sharing tmux – shared ssh sessions Wednesday, August 15, 12
  • 109. The Tech: “Screen” Sharing tmux – shared ssh sessions • Fast! • Good for Vim, Emacs editors • Popular in Ruby, Scala communities • Best for low bandwidth connections • Addictive usage model Wednesday, August 15, 12
  • 110. The Tech: “Screen” Sharing tmux cont… • Requires ssh access, possibly VPN • Learning curve using tmux commands • Desktop screen sharing for some activities • Not for IDEs - iOS, Java, .NET Wednesday, August 15, 12
  • 112. The Tech Video Conferencing Wednesday, August 15, 12
  • 113. The Tech Video Conferencing Wednesday, August 15, 12
  • 114. The Tech Video Conferencing Love it or hate it, Skype is ubiquitous and has great echo cancelation Wednesday, August 15, 12
  • 115. The Tech Video Conferencing http://www.cisco.com/web/telepresence Wednesday, August 15, 12
  • 117. Computer for Development Wednesday, August 15, 12
  • 118. Laptop for Skype Wednesday, August 15, 12
  • 119. Snowball Mic for Groups or Office Wednesday, August 15, 12
  • 120. Speakers for Groups or Office Wednesday, August 15, 12
  • 122. Long Term Remote Pairing Wednesday, August 15, 12
  • 123. Long Term Remote Pairing Works best with dedicated RPP stations and dedicated audio/video laptops Wednesday, August 15, 12
  • 124. Long Term Remote Pairing Dedicated stations: everyone knows where to find the remote people Wednesday, August 15, 12
  • 125. Random Thoughts Telepresence, etc. Wednesday, August 15, 12
  • 126. Conference Rooms “Skype-enabled” meeting rooms Wednesday, August 15, 12
  • 128. Conference Rooms http://www.cisco.com/web/telepresence Wednesday, August 15, 12
  • 130. What about iPads? Promising! Wednesday, August 15, 12
  • 132. What about ROBOTS!?!?! http://anybots.com Wednesday, August 15, 12
  • 133. OMG ROBOTS!!!!!! http://internetdebris.blogspot.com/ http://www.newscientist.com Wednesday, August 15, 12
  • 134. OMG ROBOTS????? http://internetdebris.blogspot.com/ ??? http://www.newscientist.com Wednesday, August 15, 12
  • 135. Thank You! Joe Moore Pivotal Labs @joem joe.moore@gmail.com http://svy.mk/pairprogram Wednesday, August 15, 12