Remote Pair Programming

59
Remote Pair Programming ScanDev 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Adipa Gunesekara

description

Remote Pair Programming. ScanDev 2013 Johannes Brodwall Exilesoft Chief scientist @ jhannes. Guest starring: Adipa Gunesekara. Can a distributed team still be Communicating closely?. After this talk Find a remote mentor Pair with your remote team. Why How Demonstration - PowerPoint PPT Presentation

Transcript of Remote Pair Programming

Remote Pair Programming

ScanDev 2013Johannes Brodwall

Exilesoft Chief scientist

@jhannes

Guest starring: Adipa Gunesekara

Can a distributed team still

be Communicating closely?

After this talk• Find a remote mentor

• Pair with your remote team

1. Why2. How3. Demonstration 4. Discussion5. Conclusion

Global teams

There are not enough devs here

There are not enough devs here(for most values of “here”)

(There are not enough devs here)But there are more “over there”

Communication cost increases with distance

But

Communication cost increases with distance

Everybody knows that:Communication cost increases

with distance

Which would you prefer:

Which would you prefer:

A. Team sits onsite, but…uses headphones all day

speak to customer monthly

Which would you prefer:

A. Team sits onsite, but…uses headphones all day

speak to customer monthlyB. Team 1/3 around the worldPair programs with local devs

Speak with customer daily

Practical remote programming

Don’t send each keystroke across the world and back

We want a solution that is not super-expensive

Voice sharingScreen sharing

File sharing

Voice sharing (Skype)Screen sharing (GoToMeeting)

File sharing (Dropbox)

Ping pong

Ingredient #1:Pair programming

Ingredient #2:Test driven

development

Failing test

Write code

Failing test

Write code

Failing test

Ingredient #3:

Refactoring

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Put together

Failing test

Write code

Failing test

Write code

Failing test

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Demonstration

What to watch for?

What to watch for?• Collaboration

• Problems and approaches

Say hello to my team!

Remember: Suboptimal network

Please:• Talk about what you see to the person

next to you (whisper)•Tweet to @jhannes

Demonstration(Guest starring Adipa

Gunasekara)

Kata: Number names

Kata: Number names1 => one

2 => two

33 => thirty three

365 => three hundred and five

1,230,113 => one million, two hundred and thirty thousand, one hundred and thirteen

Discussion

Benefits(Guest starring Adipa

Gunasekara)

Faster

Lower error rate

More productive

Usage

Team startup

Training

Job interviews

Team startup• Me locally with customer• 3 developers in Sri Lanka

• First month: Daily remote pairing on rotation

• High bandwidth for learning tech and domain

Dev extension• Not tried, but I think…

• One Scandinavian dev can work closely with three devs offshore

• If you can double your productivity, the math looks profitable…

Training• You just saw it…

Interviews• Reveals real skills

• Motivating: fun and educational => Good PR

• Pre-start training

Decreasing the distance

How do you decrease the distance in your

team?

Conclusion

Dropbox, Skype, GoToMeeting

It’s a small world, after all

Find a remote pair prog partner

Find a remote pair prog partner

Have fun

Grab hold of me in the hallway for a pair programming session