Remote pair programming conference 2012

Preview:

Citation preview

Remote Pair Programming

A Guide for Distributed Agile Teams

Wednesday, August 15, 12

Agenda

OverviewPeople

Challenges“You’re Remote Pairing Today”

TechnologyWednesday, August 15, 12

http://svy.mk/pairprogram

Feedback

Wednesday, August 15, 12

Who?

Wednesday, August 15, 12

Joe Moore - @joemjoe.moore@gmail.com

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

Who?

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 projectis 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 ideasclearly 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

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

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

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

ChallengesTechnology gremlins

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

• VPNs • SKYPE

Wednesday, August 15, 12

• 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

ChallengesWorking from home?

Get savvy with your home network

Wednesday, August 15, 12

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

But what about…

Wednesday, August 15, 12

Wednesday, August 15, 12

Now what?

“You’re remote pairing today”

Wednesday, August 15, 12

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

“You’re remote pairing today”

Remember theDo’s and Don’ts

Wednesday, August 15, 12

“You’re remote pairing today”

Remote pairing interviews

Wednesday, August 15, 12

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

“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

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 sharingor

Terminal based

Wednesday, August 15, 12

The Tech

Full Desktop Sharing

Wednesday, August 15, 12

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

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

Screen Sharing

The Tech

/System/Library/CoreServices

Wednesday, August 15, 12

The Tech: Screen SharingFull Desktop Sharing

2-Way Control

✓✓✓✓✓✓XX

Pause for

Rant

Wednesday, August 15, 12

The Tech: “Screen” Sharingtmux – shared ssh sessions

Wednesday, August 15, 12

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

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

Wednesday, August 15, 12

The Tech

Video Conferencing

Wednesday, August 15, 12

Video Conferencing

The Tech

Wednesday, August 15, 12

The Tech

Love it or hate it, Skype is ubiquitous and has

great echo cancelation

Video Conferencing

Wednesday, August 15, 12

The TechVideo 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

orOffice

Wednesday, August 15, 12

Speakers for

Groupsor

Office

Wednesday, August 15, 12

Headest

Wednesday, August 15, 12

Long Term Remote Pairing

Wednesday, August 15, 12

Works best withdedicated RPP stations

and dedicated audio/video laptops

Long Term Remote Pairing

Wednesday, August 15, 12

Dedicated stations: everyone knows where to find

the remote people

Long Term Remote Pairing

Wednesday, August 15, 12

Telepresence, etc.

Random Thoughts

Wednesday, August 15, 12

“Skype-enabled”meeting rooms

Conference Rooms

Wednesday, August 15, 12

Conference Rooms

Wednesday, August 15, 12

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

Conference Rooms

Wednesday, August 15, 12

What about iPads?

Wednesday, August 15, 12

Promising!

What about iPads?

Wednesday, August 15, 12

What about iPads?

Wednesday, August 15, 12

What about ROBOTS!?!?!

http://anybots.com

Wednesday, August 15, 12

http://www.newscientist.com

http://internetdebris.blogspot.com/

OMG ROBOTS!!!!!!

Wednesday, August 15, 12

http://www.newscientist.com

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

OMG ROBOTS?????

Wednesday, August 15, 12

Thank You!Joe Moore

Pivotal Labs@joem

joe.moore@gmail.comhttp://svy.mk/pairprogram

Wednesday, August 15, 12

Recommended