Ideas for Distributing Skills Across a Continental Divide

24
1 Enabling Development Practices in a Remote Location Experiences from the ODC Project

description

Ideas for Distributing Skills Across a Continental DivideKey Points:- Learning needs to be collaborative and bi-directional- Use the code base as a primary channel for communication. Encourage this in your practices.- Select different learning practices for different phases in the project.-Appraisal of four practices: Abridged Pairing, Collaborative Refactoring, Code Review Blitz, Follow-the-Sun Pairing.

Transcript of Ideas for Distributing Skills Across a Continental Divide

Page 1: Ideas for Distributing Skills Across a Continental Divide

1

Enabling Development Practices in a Remote Location

Experiences from the ODC Project

Page 2: Ideas for Distributing Skills Across a Continental Divide

2

We are so used to co-located communication that we often don’t

recognise that distributed communication is a distinct skill

Page 3: Ideas for Distributing Skills Across a Continental Divide

3

Traditional learning methods break down in distributed teams

Page 4: Ideas for Distributing Skills Across a Continental Divide

4

Successful practices foster the idea of a single distributed team

Page 5: Ideas for Distributing Skills Across a Continental Divide

5

The Agile Backlog One Story List

A story to do

A story to do

A story to do

A story to do

A story to do

A story to do

India London

Two Teams

Page 6: Ideas for Distributing Skills Across a Continental Divide

6

Key Tenet (1) Learning practices should be

collaborative and bi-directional

Page 7: Ideas for Distributing Skills Across a Continental Divide

7

One way ‘instruction’ can have a negative affect on morale

Learning practices should be collaborative and bi-directional

Page 8: Ideas for Distributing Skills Across a Continental Divide

8

In corporate contexts collaborating to solve a problem works better than

teaching, as it is empowering

Learning practices should be collaborative and bi-directional

Page 9: Ideas for Distributing Skills Across a Continental Divide

9

Group forums are more appropriate for feedback as the potential for offence is diluted by the group

Learning practices should be collaborative and bi-directional

Page 10: Ideas for Distributing Skills Across a Continental Divide

10

Key Tenet (2) The code base should be the main tool

for communicating practices.

Page 11: Ideas for Distributing Skills Across a Continental Divide

11

Code is language and culturally neutral

The code base should be the main tool for communicating practices.

Page 12: Ideas for Distributing Skills Across a Continental Divide

12

The codebase facilitates contextual learning

The code base should be the main tool for communicating practices.

Teaching patterns and practices is significantly more successful if it is done in the context of real work in a real code base.

Page 13: Ideas for Distributing Skills Across a Continental Divide

13

Key Tenet (3) The practices should change as the

team evolves

You need different ‘tools’ at different times

Page 14: Ideas for Distributing Skills Across a Continental Divide

14

High intensity, one-on-one practices work well at the start

More collaborative, group based practices work well as the team matures

Page 15: Ideas for Distributing Skills Across a Continental Divide

15

Abridged Pairing

One hour per day

Pros: •  Very successful mentoring practice •  Targeted and feedback driven •  Instruction is provided in the context

of a real work problem ⇒ One of the best ways to teach skills

like OO and test driven development

Cons: •  Unidirectional •  Can be frustrating for both parties •  Both parties can’t edit code

concurrently (software limitation) meaning it’s not really a communication conduit.

⇒ Best for a short period of enablement

Page 16: Ideas for Distributing Skills Across a Continental Divide

16

Collaborative Refactoring

•  Offline practice •  Similar to a traditional code

review but is done during the development of a story.

•  Reviewer actually refactors sections and then talks them through with the original developer. The original developer does the same.

Code Base

Page 17: Ideas for Distributing Skills Across a Continental Divide

17

Collaborative Refactoring Pros: •  Real world problems •  More interactive for the

reviewer •  The code is the primary

communication channel

Cons: •  Time consuming •  Unintentional offense

Code Base

Page 18: Ideas for Distributing Skills Across a Continental Divide

18

Code Review Blitz

Discuss

Split and review

Discuss

Page 19: Ideas for Distributing Skills Across a Continental Divide

19

Code Review Blitz Pros: •  Group provides momentum •  Groups are a better forum

for feedback •  Collect boarder themes for

further discussion or follow up

Cons: •  Lack of Freshness: The

code being reviewed can be out of date

•  More code review than collaborative improvement

Page 20: Ideas for Distributing Skills Across a Continental Divide

20

Handover

Follow-the-Sun Pairing (work in progress)

One Story

India Day

London Day

Check In

Check In

Page 21: Ideas for Distributing Skills Across a Continental Divide

21

Developer rotations: the best way to teach practices

Page 22: Ideas for Distributing Skills Across a Continental Divide

22

Practice Champions

Inculcate a remote team member with a certain skill for them to distribute

Page 23: Ideas for Distributing Skills Across a Continental Divide

23

Building Rapport

Video Conferences without specific agendas

Page 24: Ideas for Distributing Skills Across a Continental Divide

24

Bidirectional, collaborative instead of purely instructional

Try to use the code base to communicate

instead of just the phone

Different practices are needed at

different times, no one will do

Summary