remote pair programming agile 2013 johannes brodwall exilesoft chief scientist @jhannes guest...

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

Upload: jody-martin

Post on 28-Dec-2015

228 views

Category:

Documents


0 download

TRANSCRIPT

Remote Pair Programming

Agile 2013Johannes Brodwall

Exilesoft Chief scientist

@jhannes

Guest starring: Niruka Ruhunage

Can a distributed team

still Communicate closely?

This talk is for you if you…

Want to work with remote colleagues

Want to practice pair programming (more)

Want to see some TDD coding

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

After this talk• Find a remote mentor

• Pair with your remote team• Run a distributed workshop

1. Why2. How3. Demonstration 4. Discussion:

Distributed agile

Why 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”

But

Communication cost increases with distance

Luckily

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

Distribution change communication

Huge email discussions

Large meetings

Small group discussions

Structured collaboration

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 Niruka

Ruhunage)

Kata: Bank OCR

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

=> 888888888 AMB [888886888, 888888988, 888888880]

Discussion

Benefits(Guest starring Niruka

Ruhunage)

Domain knowledge

Also involving the quiet ones

Grow technically

What did you see?

Dealing with time-lag

Helping each other

Communicating ideas

Usage

Dev extension

Training

Job interviews

Dev extension

Training• You just saw it…

Interviews• Reveals real skills

• Motivating: fun and educational => Good PR

• Pre-start training

Distributed workshops

First week

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

1. Teams of 3 (distributed)

2. Create goal statements –10 minutes

3. Consensus goal

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.

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.

What do we get from this?

Small groups

Clear task

Cross boundaries

Distributed retrospective

Example agenda

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

Lessons

Small groups

Clear task

Eye contact doesn’t work

Decreasing the distance

How do you decrease the distance in your

team?

Conclusions

More distribution =>

more structured communication

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