Top Banner
Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage
92

Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Dec 28, 2015

Download

Documents

Jody Martin
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: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Remote Pair Programming

Agile 2013Johannes Brodwall

Exilesoft Chief scientist

@jhannes

Guest starring: Niruka Ruhunage

Page 2: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Can a distributed team

still Communicate closely?

Page 3: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

This talk is for you if you…

Page 4: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Want to work with remote colleagues

Page 5: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Want to practice pair programming (more)

Page 6: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Want to see some TDD coding

Page 7: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Want to see some TDD coding(And you’re not scared by coding)

Page 8: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

After this talk• Find a remote mentor

• Pair with your remote team• Run a distributed workshop

Page 9: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

1. Why2. How3. Demonstration 4. Discussion:

Distributed agile

Page 10: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Why global teams

Page 11: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

There are not enough devs here

Page 12: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

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

Page 13: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

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

Page 14: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

But

Page 15: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Communication cost increases with distance

Page 16: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Luckily

Page 17: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Communication cost increases with distance

Page 18: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Everybody knows that:Communication cost increases

with distance

Page 19: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Which would you prefer:

Page 20: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Which would you prefer:

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

speak to customer monthly

Page 21: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

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

Page 22: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Distribution change communication

Page 23: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Huge email discussions

Page 24: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Large meetings

Page 25: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Small group discussions

Page 26: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Structured collaboration

Page 27: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Practical remote programming

Page 28: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Don’t send each keystroke across the world and back

Page 29: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

We want a solution that is not super-expensive

Page 30: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Voice sharingScreen sharing

File sharing

Page 31: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Voice sharing (Skype)Screen sharing (GoToMeeting)

File sharing (Dropbox)

Page 32: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Ping pong

Page 33: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Ingredient #1:Pair programming

Page 34: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.
Page 35: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.
Page 36: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Ingredient #2:Test driven

development

Page 37: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Failing test

Write code

Failing test

Write code

Failing test

Page 38: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Ingredient #3:

Refactoring

Page 39: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 40: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Put together

Page 41: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Failing test

Write code

Failing test

Write code

Failing test

Page 42: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 43: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Failing test

Write code

Failing test

Write code

Failing test

Refactor code and tests

Refactor code and tests

Page 44: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Demonstration

Page 45: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

What to watch for?

Page 46: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

What to watch for?• Collaboration

• Problems and approaches

Page 47: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Say hello to my team!

Page 48: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Remember: Suboptimal network

Page 49: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Please:• Talk about what you see to the person

next to you (whisper)•Tweet to @jhannes

Page 50: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Demonstration(Guest starring Niruka

Ruhunage)

Page 51: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Kata: Bank OCR

Page 52: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Kata: Bank OCR _ _ _ _ _ _ _ _ _ |_||_||_||_||_||_||_||_||_||_||_||_||_||_||_||_||_||_|

=> 888888888 AMB [888886888, 888888988, 888888880]

Page 53: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Discussion

Page 54: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Benefits(Guest starring Niruka

Ruhunage)

Page 55: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Domain knowledge

Also involving the quiet ones

Grow technically

Page 56: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

What did you see?

Page 57: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Dealing with time-lag

Page 58: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Helping each other

Page 59: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Communicating ideas

Page 60: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Usage

Page 61: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Dev extension

Training

Job interviews

Page 62: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Dev extension

Page 63: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.
Page 64: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.
Page 65: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Training• You just saw it…

Page 66: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Interviews• Reveals real skills

• Motivating: fun and educational => Good PR

• Pre-start training

Page 67: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Distributed workshops

Page 68: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

First week

Page 69: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Monday Tuesday Wednesday Thursday Friday

Goal,Stakeholders

Dev baseline Dev baselineReview usage

Define progress,Stories

Wrap up docsDev baseline

Lunch Lunch Lunch Lunch Lunch

Look at what’s going on today

Stakeholder,Usage

Usage review,Context,Domain,Deployment

Refine models

Review,Retrospective

Page 70: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.
Page 71: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.
Page 72: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.
Page 73: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

1. Teams of 3 (distributed)

2. Create goal statements –10 minutes

3. Consensus goal

Page 74: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

For some stakeholder

Who has a goal

The system/activity/increment

Is a type of system/activity

Which gives a capability/feature.

Unlike most relevant alternative

This has a distinguishing advantage.

Page 75: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

For a busy sales officer

Who wants to find good prospects to contact when in a city

The CRM customer radar

Is a mobile map application

Which displays nearby customers on a map.

Unlike searching for prospects in CRM portal

This provides the information at a glance.

Page 76: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

What do we get from this?

Page 77: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Small groups

Clear task

Cross boundaries

Page 78: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Distributed retrospective

Page 79: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Example agenda

Page 80: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

1. Defining word

2. Groups discussion: achievements and challenges

3. Whole team discuss where are we

4. Round the table suggest actions

5. Hopes for the future

Page 81: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Lessons

Page 82: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Small groups

Clear task

Eye contact doesn’t work

Page 83: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Decreasing the distance

Page 84: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

How do you decrease the distance in your

team?

Page 85: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Conclusions

Page 86: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

More distribution =>

more structured communication

Page 87: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Dropbox, Skype, GoToMeeting

Page 88: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

It’s a small world, after all

Page 89: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Find a remote pair prog partner

Page 90: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

Find a remote pair prog partner

Have fun

Page 91: Remote Pair Programming Agile 2013 Johannes Brodwall Exilesoft Chief scientist @jhannes Guest starring: Niruka Ruhunage.

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