135
Remote Pair Programming A Guide for Distributed Agile Teams Wednesday, August 15, 12

Remote pair programming conference 2012

Embed Size (px)

Citation preview

Page 1: Remote pair programming   conference 2012

Remote Pair Programming

A Guide for Distributed Agile Teams

Wednesday, August 15, 12

Page 2: Remote pair programming   conference 2012

Agenda

OverviewPeople

Challenges“You’re Remote Pairing Today”

TechnologyWednesday, August 15, 12

Page 3: Remote pair programming   conference 2012

http://svy.mk/pairprogram

Feedback

Wednesday, August 15, 12

Page 4: Remote pair programming   conference 2012

Who?

Wednesday, August 15, 12

Page 5: Remote pair programming   conference 2012

Joe Moore - @[email protected]

Pivotal Labs - @pivotallabshttp://svy.mk/pairprogram

Who?

Wednesday, August 15, 12

Page 6: Remote pair programming   conference 2012

Who?

Pair programming since 2000

Wednesday, August 15, 12

Page 7: Remote pair programming   conference 2012

Who?

Remote pair programming full time since 2010

Wednesday, August 15, 12

Page 8: Remote pair programming   conference 2012

Pair Programming?

Wednesday, August 15, 12

Page 9: Remote pair programming   conference 2012

Pair Programming?

Two developers coding on the same

development workstation

Wednesday, August 15, 12

Page 10: Remote pair programming   conference 2012

Pair Programming?

Solving the same problem, at the same time, together

Wednesday, August 15, 12

Page 11: Remote pair programming   conference 2012

Pair Programming?

• Higher quality • Fewer defects • Focus • Intensity • Faster

problem solving • Knowledge transfer • Code review •

Wednesday, August 15, 12

Page 12: Remote pair programming   conference 2012

What?

Remote pair programming

Wednesday, August 15, 12

Page 13: Remote pair programming   conference 2012

What?

Pair programming, but not at the same physical computer

Wednesday, August 15, 12

Page 14: Remote pair programming   conference 2012

What?

What does it look like?

Wednesday, August 15, 12

Page 15: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 16: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 17: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 18: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 19: Remote pair programming   conference 2012

Video

Remote pairing:debugging a phone

http://youtu.be/mfoJ6mBVi2w

Wednesday, August 15, 12

Page 20: Remote pair programming   conference 2012

Challenges

Wednesday, August 15, 12

Page 21: Remote pair programming   conference 2012

Challenges

Wednesday, August 15, 12

Page 22: Remote pair programming   conference 2012

Video

Remote pairing:(listen for both our voices)

http://youtu.be/CWJMzW1ZqNE

Wednesday, August 15, 12

Page 23: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 24: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 25: Remote pair programming   conference 2012

Video

Remote pairing:coding via screen sharing

http://youtu.be/4PkT1bbmA4I

Wednesday, August 15, 12

Page 26: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 27: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 28: Remote pair programming   conference 2012

When?

Remote pair programming

Wednesday, August 15, 12

Page 29: Remote pair programming   conference 2012

When?

Your projectis split between

multiple locations

Wednesday, August 15, 12

Page 30: Remote pair programming   conference 2012

When?

You work for a “virtual company”

Wednesday, August 15, 12

Page 31: Remote pair programming   conference 2012

When?

Your project has remote developers

Wednesday, August 15, 12

Page 32: Remote pair programming   conference 2012

When?

Someone needs another person’s expertise

but they’re not co-located

Wednesday, August 15, 12

Page 33: Remote pair programming   conference 2012

When?

You’re giving a remote pairing interview

Wednesday, August 15, 12

Page 34: Remote pair programming   conference 2012

Why?

Remote pair programming

Wednesday, August 15, 12

Page 35: Remote pair programming   conference 2012

Why?

RPP can have the same benefits as

in-person pair programming

Wednesday, August 15, 12

Page 36: Remote pair programming   conference 2012

Why?

• Higher quality • Fewer defects • Focus • Intensity • Faster

problem solving • Knowledge transfer • Code review •

Wednesday, August 15, 12

Page 37: Remote pair programming   conference 2012

Why?

Counteract remote development pitfalls

Wednesday, August 15, 12

Page 38: Remote pair programming   conference 2012

Why?

• Higher quality • Fewer defects • Focus • Intensity • Faster

problem solving • Knowledge transfer • Code review •

Wednesday, August 15, 12

Page 39: Remote pair programming   conference 2012

Why?

Silo is a four-letter word

Wednesday, August 15, 12

Page 40: Remote pair programming   conference 2012

Why?

Some people like it better than in-person pairing?

Wednesday, August 15, 12

Page 41: Remote pair programming   conference 2012

Why?

Some people like it better than in-person pairing?

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

Wednesday, August 15, 12

Page 42: Remote pair programming   conference 2012

How?

Remote pair programming

Wednesday, August 15, 12

Page 43: Remote pair programming   conference 2012

How?

It’s about the people, not just technologies

Wednesday, August 15, 12

Page 44: Remote pair programming   conference 2012

How?

You can’t fix a team of tools with tools

Wednesday, August 15, 12

Page 45: Remote pair programming   conference 2012

How?

Patience

Wednesday, August 15, 12

Page 46: Remote pair programming   conference 2012

How?

Express your ideasclearly and concisely

Wednesday, August 15, 12

Page 47: Remote pair programming   conference 2012

How?

Extremely good pairing etiquette

Wednesday, August 15, 12

Page 48: Remote pair programming   conference 2012

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

Page 49: Remote pair programming   conference 2012

How?

Supportive operations/infrastructure team

Wednesday, August 15, 12

Page 50: Remote pair programming   conference 2012

How?

A good attitude

Wednesday, August 15, 12

Page 51: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 52: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 53: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 54: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 55: Remote pair programming   conference 2012

How?

Team must be generous and understanding

Wednesday, August 15, 12

Page 56: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 57: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 58: Remote pair programming   conference 2012

How?

Do’s and Don’ts

Wednesday, August 15, 12

Page 59: Remote pair programming   conference 2012

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)

How?

Wednesday, August 15, 12

Page 60: Remote pair programming   conference 2012

x Exclude remotes from local conversationsx Exclude remotes from meetings

x Be the strong, silent typex Just walk away

x Lay your headphones on keyboard

Don’t…How?

Wednesday, August 15, 12

Page 61: Remote pair programming   conference 2012

How?

Regarding Video

Wednesday, August 15, 12

Page 62: Remote pair programming   conference 2012

How?

I’m striving for a “high fidelity”

experience

Wednesday, August 15, 12

Page 63: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 64: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 65: Remote pair programming   conference 2012

How?

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

Wednesday, August 15, 12

Page 66: Remote pair programming   conference 2012

What’s going on?

Wednesday, August 15, 12

Page 67: Remote pair programming   conference 2012

What’s going on?

Wednesday, August 15, 12

Page 68: Remote pair programming   conference 2012

What’s going on?

Wednesday, August 15, 12

Page 69: Remote pair programming   conference 2012

What’s going on?

Wednesday, August 15, 12

Page 70: Remote pair programming   conference 2012

What’s going on?

Wednesday, August 15, 12

Page 71: Remote pair programming   conference 2012

What’s going on?

Wednesday, August 15, 12

Page 72: Remote pair programming   conference 2012

Challenges

Remote pair programming

Wednesday, August 15, 12

Page 73: Remote pair programming   conference 2012

Challenges

The same challenges as in-person pair programming

Wednesday, August 15, 12

Page 74: Remote pair programming   conference 2012

Challenges

Lacks some of the traditional work-from-home benefits

(especially full-time pairing)

Wednesday, August 15, 12

Page 75: Remote pair programming   conference 2012

Challenges

Lack of shared facilities

Wednesday, August 15, 12

Page 76: Remote pair programming   conference 2012

Challenges

Lack of shared facilities

• Whiteboards • Notecards • Big visible charts • Information

radiators • Lunch area • Hallway conversations •

Wednesday, August 15, 12

Page 77: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 78: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 79: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 80: Remote pair programming   conference 2012

Challenges

2 timezones is hard

Wednesday, August 15, 12

Page 81: Remote pair programming   conference 2012

Challenges

3 timezones is harder

Wednesday, August 15, 12

Page 82: Remote pair programming   conference 2012

Challenges

12 timezones is…???

Wednesday, August 15, 12

Page 83: Remote pair programming   conference 2012

Challenges

Technology gremlins

Wednesday, August 15, 12

Page 84: Remote pair programming   conference 2012

ChallengesTechnology gremlins

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

• VPNs • SKYPE

Wednesday, August 15, 12

Page 85: Remote pair programming   conference 2012

• Skype • Skype • Skype • Skype • Skype • Skype • Skype • Skype • Skype ype • Skype • Skyyyyyyyype • Skype • Skype • Skype • Skype • Skype • Skype SKYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYPE!!!!!!! • Skype

• Skype • Skype • Skype • Skype •

Skype • Skyyyye!!! • Skype • Skype • Skype • Skype •

Skyyyyyyyyyyyyype!!! • Skype • Skype • Skype • Skype • Skype • Skype •

Skype • Skype • Skype • Skype • Skype • Skype • Skype • Skype • Skype •

Wednesday, August 15, 12

Page 86: Remote pair programming   conference 2012

ChallengesWorking from home?

Get savvy with your home network

Wednesday, August 15, 12

Page 87: Remote pair programming   conference 2012

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

But what about…

Wednesday, August 15, 12

Page 88: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 89: Remote pair programming   conference 2012

Now what?

“You’re remote pairing today”

Wednesday, August 15, 12

Page 90: Remote pair programming   conference 2012

1. Find a headset 2. Exchange Skype info and invites3. Call, preferably with video4. Talk about RPP experiences5. Agree on OS, editor, dev setup6. Choose and try a screen sharing tech

“You’re remote pairing today”

Wednesday, August 15, 12

Page 91: Remote pair programming   conference 2012

“You’re remote pairing today”

Remember theDo’s and Don’ts

Wednesday, August 15, 12

Page 92: Remote pair programming   conference 2012

“You’re remote pairing today”

Remote pairing interviews

Wednesday, August 15, 12

Page 93: Remote pair programming   conference 2012

See previous list, and also:

• Send interviewee a setup email 24 hours before the interview

• Consider browser-based screen sharing for simplicity (more later)

“You’re remote pairing today”Remote pairing interviews

Wednesday, August 15, 12

Page 94: Remote pair programming   conference 2012

“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? 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

Remote pairing interviews

Wednesday, August 15, 12

Page 95: Remote pair programming   conference 2012

Questions

before we talk about technology?

Wednesday, August 15, 12

Page 96: Remote pair programming   conference 2012

The Tech

Wednesday, August 15, 12

Page 97: Remote pair programming   conference 2012

The Tech

There will be problems

Wednesday, August 15, 12

Page 98: Remote pair programming   conference 2012

The Tech

Fast high speed Internet,especially upload bandwidth

from the host

Wednesday, August 15, 12

Page 99: Remote pair programming   conference 2012

The Tech

Remember wired networks?

They’re fast!

Wednesday, August 15, 12

Page 100: Remote pair programming   conference 2012

The Tech

VPN: gateway through firewalls

Wednesday, August 15, 12

Page 101: Remote pair programming   conference 2012

The Tech: Screen Sharing

Many options depending on networks speed, firewalls,

ease of use

Wednesday, August 15, 12

Page 102: Remote pair programming   conference 2012

The Tech: Screen Sharing

Full desktop sharingor

Terminal based

Wednesday, August 15, 12

Page 103: Remote pair programming   conference 2012

The Tech

Full Desktop Sharing

Wednesday, August 15, 12

Page 104: Remote pair programming   conference 2012

The Tech: Screen SharingFull Desktop Sharing

ConsiderationsCross

Platform? Works across Windows, Mac, Linux

No VPN Some (usually) punch through firewalls, some don’t

In Web Browser

Quickest way to get a session going, but sometimes limiting

2-Way Control

Presentation software only allows the host to control

Wednesday, August 15, 12

Page 105: Remote pair programming   conference 2012

Joe’s Recommendations

The Tech: Screen SharingFull Desktop Sharing

Cross Platform No VPN In Web Browser 2-Way Control

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

✓ ✓ ✓ X

Wednesday, August 15, 12

Page 106: Remote pair programming   conference 2012

Screen Sharing

The Tech

/System/Library/CoreServices

Wednesday, August 15, 12

Page 107: Remote pair programming   conference 2012

The Tech: Screen SharingFull Desktop Sharing

2-Way Control

✓✓✓✓✓✓XX

Pause for

Rant

Wednesday, August 15, 12

Page 108: Remote pair programming   conference 2012

The Tech: “Screen” Sharingtmux – shared ssh sessions

Wednesday, August 15, 12

Page 109: Remote pair programming   conference 2012

The Tech: “Screen” Sharingtmux – 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

Page 110: Remote pair programming   conference 2012

The Tech: “Screen” Sharingtmux 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

Page 111: Remote pair programming   conference 2012

Wednesday, August 15, 12

Page 112: Remote pair programming   conference 2012

The Tech

Video Conferencing

Wednesday, August 15, 12

Page 113: Remote pair programming   conference 2012

Video Conferencing

The Tech

Wednesday, August 15, 12

Page 114: Remote pair programming   conference 2012

The Tech

Love it or hate it, Skype is ubiquitous and has

great echo cancelation

Video Conferencing

Wednesday, August 15, 12

Page 115: Remote pair programming   conference 2012

The TechVideo Conferencing

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

Wednesday, August 15, 12

Page 116: Remote pair programming   conference 2012

Development Workstation

Wednesday, August 15, 12

Page 117: Remote pair programming   conference 2012

Computer for Development

Wednesday, August 15, 12

Page 118: Remote pair programming   conference 2012

Laptop for

Skype

Wednesday, August 15, 12

Page 119: Remote pair programming   conference 2012

Snowball Mic for Groups

orOffice

Wednesday, August 15, 12

Page 120: Remote pair programming   conference 2012

Speakers for

Groupsor

Office

Wednesday, August 15, 12

Page 121: Remote pair programming   conference 2012

Headest

Wednesday, August 15, 12

Page 122: Remote pair programming   conference 2012

Long Term Remote Pairing

Wednesday, August 15, 12

Page 123: Remote pair programming   conference 2012

Works best withdedicated RPP stations

and dedicated audio/video laptops

Long Term Remote Pairing

Wednesday, August 15, 12

Page 124: Remote pair programming   conference 2012

Dedicated stations: everyone knows where to find

the remote people

Long Term Remote Pairing

Wednesday, August 15, 12

Page 125: Remote pair programming   conference 2012

Telepresence, etc.

Random Thoughts

Wednesday, August 15, 12

Page 126: Remote pair programming   conference 2012

“Skype-enabled”meeting rooms

Conference Rooms

Wednesday, August 15, 12

Page 127: Remote pair programming   conference 2012

Conference Rooms

Wednesday, August 15, 12

Page 128: Remote pair programming   conference 2012

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

Conference Rooms

Wednesday, August 15, 12

Page 129: Remote pair programming   conference 2012

What about iPads?

Wednesday, August 15, 12

Page 130: Remote pair programming   conference 2012

Promising!

What about iPads?

Wednesday, August 15, 12

Page 131: Remote pair programming   conference 2012

What about iPads?

Wednesday, August 15, 12

Page 132: Remote pair programming   conference 2012

What about ROBOTS!?!?!

http://anybots.com

Wednesday, August 15, 12

Page 133: Remote pair programming   conference 2012

http://www.newscientist.com

http://internetdebris.blogspot.com/

OMG ROBOTS!!!!!!

Wednesday, August 15, 12

Page 134: Remote pair programming   conference 2012

http://www.newscientist.com

http://internetdebris.blogspot.com/ ???

OMG ROBOTS?????

Wednesday, August 15, 12

Page 135: Remote pair programming   conference 2012

Thank You!Joe Moore

Pivotal Labs@joem

[email protected]://svy.mk/pairprogram

Wednesday, August 15, 12