Slide 1

Slide 1 text

Remote Pair Programming For Pivots, Pivotal Clients, and distributed teams Tuesday, August 7, 12

Slide 2

Slide 2 text

Agenda Overview People Challenges “You’re Remote Pairing Today” Technology Tuesday, August 7, 12

Slide 3

Slide 3 text

1-Question Survey http://svy.mk/pairprogram Tuesday, August 7, 12

Slide 4

Slide 4 text

Joe Moore Pivot since 2005 [email protected] @joem Who? Chad Woolley Pivot since 2006 [email protected] Tuesday, August 7, 12

Slide 5

Slide 5 text

Joe Moore Remote pairing full time since 2010 Who? Chad Woolley Remote pairing full time since 2006 Tuesday, August 7, 12

Slide 6

Slide 6 text

What? Remote pair programming Tuesday, August 7, 12

Slide 7

Slide 7 text

What? Pair programming, but not at the same physical computer Tuesday, August 7, 12

Slide 8

Slide 8 text

Tuesday, August 7, 12

Slide 9

Slide 9 text

Tuesday, August 7, 12

Slide 10

Slide 10 text

Tuesday, August 7, 12

Slide 11

Slide 11 text

Tuesday, August 7, 12

Slide 12

Slide 12 text

Video Remote pairing: debugging a phone http://youtu.be/mfoJ6mBVi2w Tuesday, August 7, 12

Slide 13

Slide 13 text

Challenges Tuesday, August 7, 12

Slide 14

Slide 14 text

Challenges Tuesday, August 7, 12

Slide 15

Slide 15 text

Video Remote pairing: (listen for both our voices) http://youtu.be/CWJMzW1ZqNE Tuesday, August 7, 12

Slide 16

Slide 16 text

Tuesday, August 7, 12

Slide 17

Slide 17 text

Tuesday, August 7, 12

Slide 18

Slide 18 text

Video Remote pairing: coding via screen sharing http://youtu.be/4PkT1bbmA4I Tuesday, August 7, 12

Slide 19

Slide 19 text

Tuesday, August 7, 12

Slide 20

Slide 20 text

Tuesday, August 7, 12

Slide 21

Slide 21 text

When? Remote pair programming Tuesday, August 7, 12

Slide 22

Slide 22 text

When? Your project is split between multiple offices Tuesday, August 7, 12

Slide 23

Slide 23 text

When? Your project has remote Pivotal or client developers Tuesday, August 7, 12

Slide 24

Slide 24 text

When? You’re giving a remote pairing interview Tuesday, August 7, 12

Slide 25

Slide 25 text

When? You have a life altering event but want to keep working for Pivotal Tuesday, August 7, 12

Slide 26

Slide 26 text

When? You prefer working from home rather than coming to the office Tuesday, August 7, 12

Slide 27

Slide 27 text

Why? remote pair programming Tuesday, August 7, 12

Slide 28

Slide 28 text

Why? Can have the same benefits as in-person pair programming Tuesday, August 7, 12

Slide 29

Slide 29 text

Pairing Benefits • Higher quality • Fewer defects • Focus • Intensity • Faster problem solving • Knowledge transfer • Code review • Tuesday, August 7, 12

Slide 30

Slide 30 text

Why? Some people like it better than in-person pairing? Tuesday, August 7, 12

Slide 31

Slide 31 text

Why? Some people like it better than in-person pairing? It’s true! I’ve heard it multiple times! Tuesday, August 7, 12

Slide 32

Slide 32 text

How? Remote pair programming Tuesday, August 7, 12

Slide 33

Slide 33 text

How? It’s about the people, not just the technologies Tuesday, August 7, 12

Slide 34

Slide 34 text

How? Patience Tuesday, August 7, 12

Slide 35

Slide 35 text

How? Express your ideas clearly and concisely Tuesday, August 7, 12

Slide 36

Slide 36 text

How? Extremely good pairing etiquette Tuesday, August 7, 12

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

How? A good attitude Tuesday, August 7, 12

Slide 39

Slide 39 text

Tuesday, August 7, 12

Slide 40

Slide 40 text

Tuesday, August 7, 12

Slide 41

Slide 41 text

Tuesday, August 7, 12

Slide 42

Slide 42 text

Tuesday, August 7, 12

Slide 43

Slide 43 text

How? Team must be generous and understanding Tuesday, August 7, 12

Slide 44

Slide 44 text

Tuesday, August 7, 12

Slide 45

Slide 45 text

Tuesday, August 7, 12

Slide 46

Slide 46 text

How? Do’s and Don’ts Tuesday, August 7, 12

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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 Don’t… How? Tuesday, August 7, 12

Slide 49

Slide 49 text

How? Video? Tuesday, August 7, 12

Slide 50

Slide 50 text

How? Video? Joe recommends it. Tracker team doesn’t use it. Tuesday, August 7, 12

Slide 51

Slide 51 text

Challenges Remote pair programming Tuesday, August 7, 12

Slide 52

Slide 52 text

Challenges The same challenges as in-person pair programming Tuesday, August 7, 12

Slide 53

Slide 53 text

Challenges Discipline and Distractions Tuesday, August 7, 12

Slide 54

Slide 54 text

Challenges Apprehensive client developer Tuesday, August 7, 12

Slide 55

Slide 55 text

Challenges Apprehensive Pivot Tuesday, August 7, 12

Slide 56

Slide 56 text

Challenges This might be someone’s first pair programming experience Tuesday, August 7, 12

Slide 57

Slide 57 text

Challenges Frustrating for speed demons Tuesday, August 7, 12

Slide 58

Slide 58 text

Challenges “It’s intellectually, physically, and emotionally exhausting” -- Chad Woolley Especially long term Tuesday, August 7, 12

Slide 59

Slide 59 text

Challenges Technology gremlins Tuesday, August 7, 12

Slide 60

Slide 60 text

Challenges Technology gremlins • flaky internet • firewalls • Skype • crappy software • broken hardware • Skype • VPNs • SKYPE Tuesday, August 7, 12

Slide 61

Slide 61 text

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 Tuesday, August 7, 12

Slide 62

Slide 62 text

Challenges Lack of shared facilities • Whiteboards • Notecards • Big visible charts • Information radiators • Lunch area • Hallway conversations • Tuesday, August 7, 12

Slide 63

Slide 63 text

Meetings, stand-ups, IPMs, etc? But what about… Tuesday, August 7, 12

Slide 64

Slide 64 text

Tuesday, August 7, 12

Slide 65

Slide 65 text

Now what? “You’re remote pairing today” Tuesday, August 7, 12

Slide 66

Slide 66 text

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 “You’re remote pairing today” Tuesday, August 7, 12

Slide 67

Slide 67 text

“You’re remote pairing today” Remote pairing interviews Tuesday, August 7, 12

Slide 68

Slide 68 text

Remote pairing interviews See previous list, and also: • Send setup email 24hrs before (wiki: Pairing Interviews). • Consider browser-based screen sharing for simplicity (more later) “You’re remote pairing today” Tuesday, August 7, 12

Slide 69

Slide 69 text

“You’re remote pairing today” 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 -- Mac, PC, or Linux? • What is your screen resolution? If you could, please download and install TeamViewer, which we will likely use for screen sharing. Also, please invite 'pivotaljoe' as a Skype contact. I will call you at 1:30PM NYC time. Talk to you soon! Remote pairing interviews Tuesday, August 7, 12

Slide 70

Slide 70 text

Questions before we talk about technology? Tuesday, August 7, 12

Slide 71

Slide 71 text

The Tech Tuesday, August 7, 12

Slide 72

Slide 72 text

The Tech There will be problems Tuesday, August 7, 12

Slide 73

Slide 73 text

The Tech Talk to Ops about getting on the fastest ethernet network Tuesday, August 7, 12

Slide 74

Slide 74 text

The Tech Avoid WiFi, especially the Guest network Ops will get mad Tuesday, August 7, 12

Slide 75

Slide 75 text

The Tech VPN: Talk to Ops if clients need access to Pivotal’s network Tuesday, August 7, 12

Slide 76

Slide 76 text

The Tech VPN: There are options if you need, but are denied, access to a client’s network Tuesday, August 7, 12

Slide 77

Slide 77 text

The Tech: Screen Sharing Full desktop sharing or Terminal based - tmux Tuesday, August 7, 12

Slide 78

Slide 78 text

The Tech: Screen Sharing Full Desktop Sharing Considerations Cross Platform? Self explanatory No VPN Some (usually) punch through firewalls, some don’t In Web Browser Easiest way to get a session going, but often limited features 2-Way Control Some software only allows the host to control Tuesday, August 7, 12

Slide 79

Slide 79 text

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 Tuesday, August 7, 12

Slide 80

Slide 80 text

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 Recommended Tuesday, August 7, 12

Slide 81

Slide 81 text

Screen Sharing The Tech /System/Library/CoreServices Tuesday, August 7, 12

Slide 82

Slide 82 text

The Tech: “Screen” Sharing tmux – shared ssh sessions Tuesday, August 7, 12

Slide 83

Slide 83 text

The Tech: “Screen” Sharing tmux – shared ssh sessions • Fast! • Good for Vim editor projects • Best for low bandwidth connections Tuesday, August 7, 12

Slide 84

Slide 84 text

The Tech: “Screen” Sharing tmux cont… • Requires ssh access, possibly VPN • tmux commands vs. OS commands • Desktop screen sharing for some activities • Not for IDEs - Java, iOS Tuesday, August 7, 12

Slide 85

Slide 85 text

The Tech Video Conferencing Tuesday, August 7, 12

Slide 86

Slide 86 text

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

Slide 87

Slide 87 text

The Tech Try others! Video Conferencing Tuesday, August 7, 12

Slide 88

Slide 88 text

The Tech Development Area Setup Tuesday, August 7, 12

Slide 89

Slide 89 text

The Tech: Dev Setup Tuesday, August 7, 12

Slide 90

Slide 90 text

Pivotal Image iMac Tuesday, August 7, 12

Slide 91

Slide 91 text

Laptop for Skype Tuesday, August 7, 12

Slide 92

Slide 92 text

Snowball Mic for Groups Tuesday, August 7, 12

Slide 93

Slide 93 text

Speakers for Groups Tuesday, August 7, 12

Slide 94

Slide 94 text

Headest Tuesday, August 7, 12

Slide 95

Slide 95 text

The Tech Link-O-Rama •Large Teams with Remote Devs: Pivotal Blog •Video Conferencing Hacks: Pivotal Blog •How we use tmux: Pivotal Blog •http://remotepairprogramming.com •Everything Skype: Pivotal Wiki •Headsets and Headphones: Pivotal Wiki •Remote Pair Programming: Pivotal Wiki •Screen Shairng Technologies: Pivotal Wiki Tuesday, August 7, 12

Slide 96

Slide 96 text

Long Term Remote Pairing Tuesday, August 7, 12

Slide 97

Slide 97 text

Dedicated RPP stations and dedicated audio/video laptops Long Term Remote Pairing Tuesday, August 7, 12

Slide 98

Slide 98 text

Dedicated stations: everyone knows where to find the remote people Long Term Remote Pairing Tuesday, August 7, 12

Slide 99

Slide 99 text

Tuesday, August 7, 12

Slide 100

Slide 100 text

iPad for Video? Promising, but... Tuesday, August 7, 12

Slide 101

Slide 101 text

What about ROBOTS!?!?! http://anybots.com Tuesday, August 7, 12

Slide 102

Slide 102 text

http://www.newscientist.com http://internetdebris.blogspot.com/ What about ROBOTS!?!?! Tuesday, August 7, 12

Slide 103

Slide 103 text

http://www.newscientist.com http://internetdebris.blogspot.com/ ??? What about ROBOTS!?!?! Tuesday, August 7, 12

Slide 104

Slide 104 text

Thank You! Joe Moore Pivotal Labs @joem http://svy.mk/pairprogram Tuesday, August 7, 12

Slide 105

Slide 105 text

Thank You! Tuesday, August 7, 12