Top Banner
Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11
87

Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Apr 23, 2018

Download

Documents

LyMinh
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Remote Pair Programming

Pair Programming for Remote Development Teams

Tuesday, August 16, 11

Page 2: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Who?

Tuesday, August 16, 11

Page 3: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Who?

Joe Moore - @[email protected]

Pivotal Labs - @pivotallabshttp://svy.mk/rpp-atl-ios

Tuesday, August 16, 11

Page 4: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Who?

Tuesday, August 16, 11

Page 5: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Agenda

PeopleChallengesTechnology

Tuesday, August 16, 11

Page 6: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Who?

Pair programming for over 11 years

Tuesday, August 16, 11

Page 7: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Who?

Remote pair programming frequently the last 6 years

Tuesday, August 16, 11

Page 8: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Who?

Remote pair programming full time for 1 year

Tuesday, August 16, 11

Page 9: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Who?

8+hrs per day5 days per week

Tuesday, August 16, 11

Page 10: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Pair Programming?

Tuesday, August 16, 11

Page 11: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Pair Programming?

Two developers coding on one workstation

Tuesday, August 16, 11

Page 12: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Pair Programming?

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

problem solving • Knowledge transfer • Code review •

Tuesday, August 16, 11

Page 13: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

What?

Remote pair programming

Tuesday, August 16, 11

Page 14: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

What?

Pair programming, but not at the same physical computer

Tuesday, August 16, 11

Page 15: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 16: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 17: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 18: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 19: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 20: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Videos

Tuesday, August 16, 11

Page 21: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 22: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 23: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Why?

Remote pair programming

Tuesday, August 16, 11

Page 24: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Why?

Because you can!

Tuesday, August 16, 11

Page 25: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Why?

The same benefits as in-person pair programming

Tuesday, August 16, 11

Page 26: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Why?

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

problem solving • Knowledge transfer • Code review •

Tuesday, August 16, 11

Page 27: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Why?

benefits are higher value for remote developers?

Tuesday, August 16, 11

Page 28: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Why?

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

problem solving • Knowledge transfer • Code review •

Tuesday, August 16, 11

Page 29: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Why?

Silo is a four-letter word

Tuesday, August 16, 11

Page 30: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

How?

Remote pair programming

Tuesday, August 16, 11

Page 31: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

How?

It's about people and technology

Tuesday, August 16, 11

Page 32: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

How?

Extremely good pairing etiquette

Tuesday, August 16, 11

Page 33: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

How?

Patience

Tuesday, August 16, 11

Page 34: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

How?

In-office team that is generous and understanding

Tuesday, August 16, 11

Page 35: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

How?

A good attitude

Tuesday, August 16, 11

Page 36: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 37: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 38: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 39: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Challenges

Remote pair programming

Tuesday, August 16, 11

Page 40: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Challenges

The same challenges as in-person pair programming

Tuesday, August 16, 11

Page 41: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Challenges

Lacks some of the traditional work-from-home benefits

Tuesday, August 16, 11

Page 42: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Challenges

Whiteboards

Tuesday, August 16, 11

Page 43: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 44: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Challenges

2 timezones is hard

Tuesday, August 16, 11

Page 45: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Challenges

3 timezones is harder

Tuesday, August 16, 11

Page 46: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Challenges

Technology gremlins

Tuesday, August 16, 11

Page 47: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Challenges

Development for physical devices

Tuesday, August 16, 11

Page 48: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Challenges

Tuesday, August 16, 11

Page 49: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Challenges

Tuesday, August 16, 11

Page 50: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

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

But what about…

Tuesday, August 16, 11

Page 51: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Questions

before we talk about technology?

Tuesday, August 16, 11

Page 52: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

The Tech

Tuesday, August 16, 11

Page 53: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

The Tech

Tuesday, August 16, 11

Page 54: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

The Tech

There will be problems

Tuesday, August 16, 11

Page 55: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

The Tech

Fast high speed Internet,especially upload bandwidth

Tuesday, August 16, 11

Page 56: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

The Tech

VPN: gateway through the firewall

Tuesday, August 16, 11

Page 57: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

The Tech

Screen Sharing

Tuesday, August 16, 11

Page 58: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Screen Sharing

The Tech

Tuesday, August 16, 11

Page 59: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Screen Sharing

The Tech

Tuesday, August 16, 11

Page 60: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

The Tech

tmux

Screen Sharing

Tuesday, August 16, 11

Page 61: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Screen Sharing

The Tech

Pause for

Rant

Tuesday, August 16, 11

Page 62: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

The Tech

Video Conferencing

Tuesday, August 16, 11

Page 63: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 64: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

The Tech

Video Conferencing

Tuesday, August 16, 11

Page 65: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

The Tech

Video Conferencing

Tuesday, August 16, 11

Page 66: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

The Tech

Video Conferencing

Though I HATEv. 5

Tuesday, August 16, 11

Page 67: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

The Tech

Video Conferencing??

?

?

Tuesday, August 16, 11

Page 68: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Joe's Desk

Tuesday, August 16, 11

Page 69: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 70: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Computer

Tuesday, August 16, 11

Page 71: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Laptop

Tuesday, August 16, 11

Page 72: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Mic

Tuesday, August 16, 11

Page 73: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Speakers

Tuesday, August 16, 11

Page 74: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 75: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Bonus Material

Random thoughts,tips and tricks

Tuesday, August 16, 11

Page 76: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

“Skype-enable”every meeting room

Tuesday, August 16, 11

Page 77: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Joe in the Box

fascinating confluence of technology and sociology

Tuesday, August 16, 11

Page 78: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 79: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Tuesday, August 16, 11

Page 80: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Dedicated Laptop

Ideally, a dedicated laptop for each remote team member

Tuesday, August 16, 11

Page 81: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Dedicated Laptop

A single dedicated machine can work, too.

Tuesday, August 16, 11

Page 82: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Dedicated Laptop

becomes thein-office presence

of the remote person

Tuesday, August 16, 11

Page 83: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Dedicated Laptop

Tuesday, August 16, 11

Page 84: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Dedicated Laptop

Small, portable, wireless, video-enabled, go-anywhereversion of the remote person

Tuesday, August 16, 11

Page 85: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Dedicated iPad 2?

Don’t bother

Tuesday, August 16, 11

Page 87: Pair Programming for Remote Development Teams · Remote Pair Programming Pair Programming for Remote Development Teams Tuesday, August 16, 11

Thank You!

Joe Moore @joem

[email protected]://svy.mk/rpp-atl-ios

Tuesday, August 16, 11