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

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

  • Upload
    lyminh

  • View
    247

  • Download
    1

Embed Size (px)

Citation preview

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