SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Enabling Development Practices
     in a Remote Location
     Experiences from the ODC
              Project



                                 1
We are so used to co-located
communication that we often don’t
   recognise that distributed
 communication is a distinct skill




                                     2
Traditional learning methods
break down in distributed teams




                                  3
Successful practices foster the
idea of a single distributed team




                                    4
The Agile Backlog
One Story    A story   A story   A story   A story   A story   A story

List          to do     to do     to do     to do     to do     to do




Two
Teams



                  India                               London
                                                                         5
Key Tenet (1)
 Learning practices should be
collaborative and bi-directional




                                   6
Learning practices should be collaborative and bi-directional



One way instruction can have
 a negative affect on morale




                                                                  7
Learning practices should be collaborative and bi-directional


In corporate contexts collaborating to
  solve a problem works better than
    teaching, as it is empowering




                                                                     8
Learning practices should be collaborative and bi-directional



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




                                                                    9
Key Tenet (2)
The code base should be the main tool
     for communicating practices.




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



Code is language and culturally
            neutral




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



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




                                                                         12
Key Tenet (3)
The practices should change as the
           team evolves

      You need different ‘tools’ at
            different times




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




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



One hour per day


Pros:                                       Cons:
•  Very successful mentoring practice       •  Unidirectional
•  Targeted and feedback driven             •  Can be frustrating for both parties
•  Instruction is provided in the context   •  Both parties can’t edit code
   of a real work problem                      concurrently (software limitation)
⇒  One of the best ways to teach skills        meaning it’s not really a
   like OO and test driven development         communication conduit.
                                            ⇒  Best for a short period of
                                                                              15
                                               enablement
Collaborative Refactoring
•  Offline practice
•  Similar to a traditional code
   review but is done during
   the development of a story.     Code
                                   Base
•  Reviewer actually refactors
   sections and then talks
   them through with the
   original developer. The
   original developer does the
   same.                                  16
Collaborative Refactoring
Pros:
•  Real world problems
•  More interactive for the
   reviewer
•  The code is the primary
   communication channel      Code
                              Base


Cons:
•  Time consuming
•  Unintentional offense


                                     17
Code Review Blitz

        Discuss




    Split and review




        Discuss




                       18
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      19
Follow-the-Sun Pairing
                (work in progress)



               Check In


             India Day
One                       Handover
Story
                                     London Day


                                                  Check In




                                                             20
Developer rotations: the best
   way to teach practices




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




                                        22
Building Rapport
Video Conferences without specific agendas




                                         23
Summary
                           Try to use the code
    Bidirectional,
                          base to communicate
collaborative instead
                            instead of just the
of purely instructional
                                  phone


               Different practices
                 are needed at
               different times, no
                    one will do


                                                  24

Contenu connexe

En vedette

Streaming, Database & Distributed Systems Bridging the Divide
Streaming, Database & Distributed Systems Bridging the DivideStreaming, Database & Distributed Systems Bridging the Divide
Streaming, Database & Distributed Systems Bridging the DivideBen Stopford
 
Test-Oriented Languages: Is it time for a new era?
Test-Oriented Languages: Is it time for a new era?Test-Oriented Languages: Is it time for a new era?
Test-Oriented Languages: Is it time for a new era?Ben Stopford
 
Refactoring tested code - has mocking gone wrong?
Refactoring tested code - has mocking gone wrong?Refactoring tested code - has mocking gone wrong?
Refactoring tested code - has mocking gone wrong?Ben Stopford
 
Coherence Implementation Patterns - Sig Nov 2011
Coherence Implementation Patterns - Sig Nov 2011Coherence Implementation Patterns - Sig Nov 2011
Coherence Implementation Patterns - Sig Nov 2011Ben Stopford
 
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear ScalabilityBeyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear ScalabilityBen Stopford
 
Big Data & the Enterprise
Big Data & the EnterpriseBig Data & the Enterprise
Big Data & the EnterpriseBen Stopford
 
The return of big iron?
The return of big iron?The return of big iron?
The return of big iron?Ben Stopford
 
Big iron 2 (published)
Big iron 2 (published)Big iron 2 (published)
Big iron 2 (published)Ben Stopford
 
Microservices for a Streaming World
Microservices for a Streaming WorldMicroservices for a Streaming World
Microservices for a Streaming WorldBen Stopford
 
Data Pipelines with Apache Kafka
Data Pipelines with Apache KafkaData Pipelines with Apache Kafka
Data Pipelines with Apache KafkaBen Stopford
 
The Power of the Log
The Power of the LogThe Power of the Log
The Power of the LogBen Stopford
 

En vedette (12)

Streaming, Database & Distributed Systems Bridging the Divide
Streaming, Database & Distributed Systems Bridging the DivideStreaming, Database & Distributed Systems Bridging the Divide
Streaming, Database & Distributed Systems Bridging the Divide
 
Test-Oriented Languages: Is it time for a new era?
Test-Oriented Languages: Is it time for a new era?Test-Oriented Languages: Is it time for a new era?
Test-Oriented Languages: Is it time for a new era?
 
Refactoring tested code - has mocking gone wrong?
Refactoring tested code - has mocking gone wrong?Refactoring tested code - has mocking gone wrong?
Refactoring tested code - has mocking gone wrong?
 
Coherence Implementation Patterns - Sig Nov 2011
Coherence Implementation Patterns - Sig Nov 2011Coherence Implementation Patterns - Sig Nov 2011
Coherence Implementation Patterns - Sig Nov 2011
 
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear ScalabilityBeyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
Beyond The Data Grid: Coherence, Normalisation, Joins and Linear Scalability
 
Big Data & the Enterprise
Big Data & the EnterpriseBig Data & the Enterprise
Big Data & the Enterprise
 
The return of big iron?
The return of big iron?The return of big iron?
The return of big iron?
 
Big iron 2 (published)
Big iron 2 (published)Big iron 2 (published)
Big iron 2 (published)
 
JAX London Slides
JAX London SlidesJAX London Slides
JAX London Slides
 
Microservices for a Streaming World
Microservices for a Streaming WorldMicroservices for a Streaming World
Microservices for a Streaming World
 
Data Pipelines with Apache Kafka
Data Pipelines with Apache KafkaData Pipelines with Apache Kafka
Data Pipelines with Apache Kafka
 
The Power of the Log
The Power of the LogThe Power of the Log
The Power of the Log
 

Similaire à Ideas for Distributing Skills Across a Continental Divide

Practical co design guidance-workshop lessons
Practical co design guidance-workshop lessonsPractical co design guidance-workshop lessons
Practical co design guidance-workshop lessonsMark Hicks
 
Practices of an agile developer
Practices of an agile developerPractices of an agile developer
Practices of an agile developerDUONG Trong Tan
 
'No Whitewash' - Experiences of running international qualitative forums - Bu...
'No Whitewash' - Experiences of running international qualitative forums - Bu...'No Whitewash' - Experiences of running international qualitative forums - Bu...
'No Whitewash' - Experiences of running international qualitative forums - Bu...Merlien Institute
 
Great Webinars (ASTD PS)
Great Webinars (ASTD PS)Great Webinars (ASTD PS)
Great Webinars (ASTD PS)Cynthia Clay
 
Social Media and Collaborative Learning at ASTD 2012
Social Media and Collaborative Learning at ASTD 2012Social Media and Collaborative Learning at ASTD 2012
Social Media and Collaborative Learning at ASTD 2012Cynthia Clay
 
Great Webinars: Crossing the Chasm to High Performance Virtual Delivery
Great Webinars: Crossing the Chasm to High Performance Virtual DeliveryGreat Webinars: Crossing the Chasm to High Performance Virtual Delivery
Great Webinars: Crossing the Chasm to High Performance Virtual DeliveryCynthia Clay
 
Great Webinars (Pfeiffer)
Great Webinars (Pfeiffer)Great Webinars (Pfeiffer)
Great Webinars (Pfeiffer)Cynthia Clay
 
User Centered Execution for Mobile UX Designers
User Centered Execution for Mobile UX DesignersUser Centered Execution for Mobile UX Designers
User Centered Execution for Mobile UX DesignersSteven Hoober
 
ASTD 2012 ICE: Great Webinars
ASTD 2012 ICE: Great WebinarsASTD 2012 ICE: Great Webinars
ASTD 2012 ICE: Great WebinarsCynthia Clay
 
50 UX Best Practices (By Above the Fold)
50 UX Best Practices (By Above the Fold)50 UX Best Practices (By Above the Fold)
50 UX Best Practices (By Above the Fold)Cristiano Caetano
 
Tiffany songvilay train the trainer - spssa
Tiffany songvilay   train the trainer - spssaTiffany songvilay   train the trainer - spssa
Tiffany songvilay train the trainer - spssaTiffany Songvilay
 
Dealing With Difficulities When Applying Scrum To Dispered Team
Dealing With Difficulities When Applying Scrum To Dispered TeamDealing With Difficulities When Applying Scrum To Dispered Team
Dealing With Difficulities When Applying Scrum To Dispered TeamThang Ba Nguyen, MSc, PMP, PSM
 
Great Webinars - ASTD Rocky Mt.
Great Webinars - ASTD Rocky Mt.Great Webinars - ASTD Rocky Mt.
Great Webinars - ASTD Rocky Mt.Cynthia Clay
 
FOSS and agile software development
FOSS and agile software developmentFOSS and agile software development
FOSS and agile software developmentDUONG Trong Tan
 
SFD2012Hanoi - Duong Trong Tan - Agile and FOSS
SFD2012Hanoi - Duong Trong Tan - Agile and FOSS SFD2012Hanoi - Duong Trong Tan - Agile and FOSS
SFD2012Hanoi - Duong Trong Tan - Agile and FOSS Vu Hung Nguyen
 
21st century business communication
21st century business communication21st century business communication
21st century business communicationswatts2
 
eLearning strategy by CAPDM
eLearning strategy by CAPDMeLearning strategy by CAPDM
eLearning strategy by CAPDMITStudy Ltd.
 

Similaire à Ideas for Distributing Skills Across a Continental Divide (20)

Practical co design guidance-workshop lessons
Practical co design guidance-workshop lessonsPractical co design guidance-workshop lessons
Practical co design guidance-workshop lessons
 
Practices of an agile developer
Practices of an agile developerPractices of an agile developer
Practices of an agile developer
 
'No Whitewash' - Experiences of running international qualitative forums - Bu...
'No Whitewash' - Experiences of running international qualitative forums - Bu...'No Whitewash' - Experiences of running international qualitative forums - Bu...
'No Whitewash' - Experiences of running international qualitative forums - Bu...
 
Great Webinars
Great WebinarsGreat Webinars
Great Webinars
 
Great Webinars (ASTD PS)
Great Webinars (ASTD PS)Great Webinars (ASTD PS)
Great Webinars (ASTD PS)
 
Social Media and Collaborative Learning at ASTD 2012
Social Media and Collaborative Learning at ASTD 2012Social Media and Collaborative Learning at ASTD 2012
Social Media and Collaborative Learning at ASTD 2012
 
Great Webinars: Crossing the Chasm to High Performance Virtual Delivery
Great Webinars: Crossing the Chasm to High Performance Virtual DeliveryGreat Webinars: Crossing the Chasm to High Performance Virtual Delivery
Great Webinars: Crossing the Chasm to High Performance Virtual Delivery
 
Great Webinars (Pfeiffer)
Great Webinars (Pfeiffer)Great Webinars (Pfeiffer)
Great Webinars (Pfeiffer)
 
User Centered Execution for Mobile UX Designers
User Centered Execution for Mobile UX DesignersUser Centered Execution for Mobile UX Designers
User Centered Execution for Mobile UX Designers
 
ASTD 2012 ICE: Great Webinars
ASTD 2012 ICE: Great WebinarsASTD 2012 ICE: Great Webinars
ASTD 2012 ICE: Great Webinars
 
50 UX Best Practices (By Above the Fold)
50 UX Best Practices (By Above the Fold)50 UX Best Practices (By Above the Fold)
50 UX Best Practices (By Above the Fold)
 
Tiffany songvilay train the trainer - spssa
Tiffany songvilay   train the trainer - spssaTiffany songvilay   train the trainer - spssa
Tiffany songvilay train the trainer - spssa
 
Dealing With Difficulities When Applying Scrum To Dispered Team
Dealing With Difficulities When Applying Scrum To Dispered TeamDealing With Difficulities When Applying Scrum To Dispered Team
Dealing With Difficulities When Applying Scrum To Dispered Team
 
Designing interactive meetings December 2, 2011
Designing interactive meetings   December 2, 2011Designing interactive meetings   December 2, 2011
Designing interactive meetings December 2, 2011
 
Great Webinars - ASTD Rocky Mt.
Great Webinars - ASTD Rocky Mt.Great Webinars - ASTD Rocky Mt.
Great Webinars - ASTD Rocky Mt.
 
FOSS and agile software development
FOSS and agile software developmentFOSS and agile software development
FOSS and agile software development
 
SFD2012Hanoi - Duong Trong Tan - Agile and FOSS
SFD2012Hanoi - Duong Trong Tan - Agile and FOSS SFD2012Hanoi - Duong Trong Tan - Agile and FOSS
SFD2012Hanoi - Duong Trong Tan - Agile and FOSS
 
21st century business communication
21st century business communication21st century business communication
21st century business communication
 
Knowledge Transfer
Knowledge TransferKnowledge Transfer
Knowledge Transfer
 
eLearning strategy by CAPDM
eLearning strategy by CAPDMeLearning strategy by CAPDM
eLearning strategy by CAPDM
 

Plus de Ben Stopford

10 Principals for Effective Event-Driven Microservices with Apache Kafka
10 Principals for Effective Event-Driven Microservices with Apache Kafka10 Principals for Effective Event-Driven Microservices with Apache Kafka
10 Principals for Effective Event-Driven Microservices with Apache KafkaBen Stopford
 
10 Principals for Effective Event Driven Microservices
10 Principals for Effective Event Driven Microservices10 Principals for Effective Event Driven Microservices
10 Principals for Effective Event Driven MicroservicesBen Stopford
 
The Future of Streaming: Global Apps, Event Stores and Serverless
The Future of Streaming: Global Apps, Event Stores and ServerlessThe Future of Streaming: Global Apps, Event Stores and Serverless
The Future of Streaming: Global Apps, Event Stores and ServerlessBen Stopford
 
A Global Source of Truth for the Microservices Generation
A Global Source of Truth for the Microservices GenerationA Global Source of Truth for the Microservices Generation
A Global Source of Truth for the Microservices GenerationBen Stopford
 
Building Event Driven Services with Kafka Streams
Building Event Driven Services with Kafka StreamsBuilding Event Driven Services with Kafka Streams
Building Event Driven Services with Kafka StreamsBen Stopford
 
NDC London 2017 - The Data Dichotomy- Rethinking Data and Services with Streams
NDC London 2017  - The Data Dichotomy- Rethinking Data and Services with StreamsNDC London 2017  - The Data Dichotomy- Rethinking Data and Services with Streams
NDC London 2017 - The Data Dichotomy- Rethinking Data and Services with StreamsBen Stopford
 
Building Event Driven Services with Apache Kafka and Kafka Streams - Devoxx B...
Building Event Driven Services with Apache Kafka and Kafka Streams - Devoxx B...Building Event Driven Services with Apache Kafka and Kafka Streams - Devoxx B...
Building Event Driven Services with Apache Kafka and Kafka Streams - Devoxx B...Ben Stopford
 
Building Event Driven Services with Stateful Streams
Building Event Driven Services with Stateful StreamsBuilding Event Driven Services with Stateful Streams
Building Event Driven Services with Stateful StreamsBen Stopford
 
Devoxx London 2017 - Rethinking Services With Stateful Streams
Devoxx London 2017 - Rethinking Services With Stateful StreamsDevoxx London 2017 - Rethinking Services With Stateful Streams
Devoxx London 2017 - Rethinking Services With Stateful StreamsBen Stopford
 
Event Driven Services Part 2: Building Event-Driven Services with Apache Kafka
Event Driven Services Part 2:  Building Event-Driven Services with Apache KafkaEvent Driven Services Part 2:  Building Event-Driven Services with Apache Kafka
Event Driven Services Part 2: Building Event-Driven Services with Apache KafkaBen Stopford
 
Event Driven Services Part 1: The Data Dichotomy
Event Driven Services Part 1: The Data Dichotomy Event Driven Services Part 1: The Data Dichotomy
Event Driven Services Part 1: The Data Dichotomy Ben Stopford
 
Event Driven Services Part 3: Putting the Micro into Microservices with State...
Event Driven Services Part 3: Putting the Micro into Microservices with State...Event Driven Services Part 3: Putting the Micro into Microservices with State...
Event Driven Services Part 3: Putting the Micro into Microservices with State...Ben Stopford
 
Strata Software Architecture NY: The Data Dichotomy
Strata Software Architecture NY: The Data DichotomyStrata Software Architecture NY: The Data Dichotomy
Strata Software Architecture NY: The Data DichotomyBen Stopford
 
A little bit of clojure
A little bit of clojureA little bit of clojure
A little bit of clojureBen Stopford
 
Where Does Big Data Meet Big Database - QCon 2012
Where Does Big Data Meet Big Database - QCon 2012Where Does Big Data Meet Big Database - QCon 2012
Where Does Big Data Meet Big Database - QCon 2012Ben Stopford
 
Advanced databases ben stopford
Advanced databases   ben stopfordAdvanced databases   ben stopford
Advanced databases ben stopfordBen Stopford
 
A Paradigm Shift: The Increasing Dominance of Memory-Oriented Solutions for H...
A Paradigm Shift: The Increasing Dominance of Memory-Oriented Solutions for H...A Paradigm Shift: The Increasing Dominance of Memory-Oriented Solutions for H...
A Paradigm Shift: The Increasing Dominance of Memory-Oriented Solutions for H...Ben Stopford
 
Balancing Replication and Partitioning in a Distributed Java Database
Balancing Replication and Partitioning in a Distributed Java DatabaseBalancing Replication and Partitioning in a Distributed Java Database
Balancing Replication and Partitioning in a Distributed Java DatabaseBen Stopford
 
Data Grids with Oracle Coherence
Data Grids with Oracle CoherenceData Grids with Oracle Coherence
Data Grids with Oracle CoherenceBen Stopford
 
Architecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachArchitecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachBen Stopford
 

Plus de Ben Stopford (20)

10 Principals for Effective Event-Driven Microservices with Apache Kafka
10 Principals for Effective Event-Driven Microservices with Apache Kafka10 Principals for Effective Event-Driven Microservices with Apache Kafka
10 Principals for Effective Event-Driven Microservices with Apache Kafka
 
10 Principals for Effective Event Driven Microservices
10 Principals for Effective Event Driven Microservices10 Principals for Effective Event Driven Microservices
10 Principals for Effective Event Driven Microservices
 
The Future of Streaming: Global Apps, Event Stores and Serverless
The Future of Streaming: Global Apps, Event Stores and ServerlessThe Future of Streaming: Global Apps, Event Stores and Serverless
The Future of Streaming: Global Apps, Event Stores and Serverless
 
A Global Source of Truth for the Microservices Generation
A Global Source of Truth for the Microservices GenerationA Global Source of Truth for the Microservices Generation
A Global Source of Truth for the Microservices Generation
 
Building Event Driven Services with Kafka Streams
Building Event Driven Services with Kafka StreamsBuilding Event Driven Services with Kafka Streams
Building Event Driven Services with Kafka Streams
 
NDC London 2017 - The Data Dichotomy- Rethinking Data and Services with Streams
NDC London 2017  - The Data Dichotomy- Rethinking Data and Services with StreamsNDC London 2017  - The Data Dichotomy- Rethinking Data and Services with Streams
NDC London 2017 - The Data Dichotomy- Rethinking Data and Services with Streams
 
Building Event Driven Services with Apache Kafka and Kafka Streams - Devoxx B...
Building Event Driven Services with Apache Kafka and Kafka Streams - Devoxx B...Building Event Driven Services with Apache Kafka and Kafka Streams - Devoxx B...
Building Event Driven Services with Apache Kafka and Kafka Streams - Devoxx B...
 
Building Event Driven Services with Stateful Streams
Building Event Driven Services with Stateful StreamsBuilding Event Driven Services with Stateful Streams
Building Event Driven Services with Stateful Streams
 
Devoxx London 2017 - Rethinking Services With Stateful Streams
Devoxx London 2017 - Rethinking Services With Stateful StreamsDevoxx London 2017 - Rethinking Services With Stateful Streams
Devoxx London 2017 - Rethinking Services With Stateful Streams
 
Event Driven Services Part 2: Building Event-Driven Services with Apache Kafka
Event Driven Services Part 2:  Building Event-Driven Services with Apache KafkaEvent Driven Services Part 2:  Building Event-Driven Services with Apache Kafka
Event Driven Services Part 2: Building Event-Driven Services with Apache Kafka
 
Event Driven Services Part 1: The Data Dichotomy
Event Driven Services Part 1: The Data Dichotomy Event Driven Services Part 1: The Data Dichotomy
Event Driven Services Part 1: The Data Dichotomy
 
Event Driven Services Part 3: Putting the Micro into Microservices with State...
Event Driven Services Part 3: Putting the Micro into Microservices with State...Event Driven Services Part 3: Putting the Micro into Microservices with State...
Event Driven Services Part 3: Putting the Micro into Microservices with State...
 
Strata Software Architecture NY: The Data Dichotomy
Strata Software Architecture NY: The Data DichotomyStrata Software Architecture NY: The Data Dichotomy
Strata Software Architecture NY: The Data Dichotomy
 
A little bit of clojure
A little bit of clojureA little bit of clojure
A little bit of clojure
 
Where Does Big Data Meet Big Database - QCon 2012
Where Does Big Data Meet Big Database - QCon 2012Where Does Big Data Meet Big Database - QCon 2012
Where Does Big Data Meet Big Database - QCon 2012
 
Advanced databases ben stopford
Advanced databases   ben stopfordAdvanced databases   ben stopford
Advanced databases ben stopford
 
A Paradigm Shift: The Increasing Dominance of Memory-Oriented Solutions for H...
A Paradigm Shift: The Increasing Dominance of Memory-Oriented Solutions for H...A Paradigm Shift: The Increasing Dominance of Memory-Oriented Solutions for H...
A Paradigm Shift: The Increasing Dominance of Memory-Oriented Solutions for H...
 
Balancing Replication and Partitioning in a Distributed Java Database
Balancing Replication and Partitioning in a Distributed Java DatabaseBalancing Replication and Partitioning in a Distributed Java Database
Balancing Replication and Partitioning in a Distributed Java Database
 
Data Grids with Oracle Coherence
Data Grids with Oracle CoherenceData Grids with Oracle Coherence
Data Grids with Oracle Coherence
 
Architecting for Change: An Agile Approach
Architecting for Change: An Agile ApproachArchitecting for Change: An Agile Approach
Architecting for Change: An Agile Approach
 

Ideas for Distributing Skills Across a Continental Divide

  • 1. Enabling Development Practices in a Remote Location Experiences from the ODC Project 1
  • 2. We are so used to co-located communication that we often don’t recognise that distributed communication is a distinct skill 2
  • 3. Traditional learning methods break down in distributed teams 3
  • 4. Successful practices foster the idea of a single distributed team 4
  • 5. The Agile Backlog One Story A story A story A story A story A story A story List to do to do to do to do to do to do Two Teams India London 5
  • 6. Key Tenet (1) Learning practices should be collaborative and bi-directional 6
  • 7. Learning practices should be collaborative and bi-directional One way instruction can have a negative affect on morale 7
  • 8. Learning practices should be collaborative and bi-directional In corporate contexts collaborating to solve a problem works better than teaching, as it is empowering 8
  • 9. Learning practices should be collaborative and bi-directional Group forums are more appropriate for feedback as the potential for offence is diluted by the group 9
  • 10. Key Tenet (2) The code base should be the main tool for communicating practices. 10
  • 11. The code base should be the main tool for communicating practices. Code is language and culturally neutral 11
  • 12. The code base should be the main tool for communicating practices. The codebase facilitates contextual learning Teaching patterns and practices is significantly more successful if it is done in the context of real work in a real code base. 12
  • 13. Key Tenet (3) The practices should change as the team evolves You need different ‘tools’ at different times 13
  • 14. High intensity, one-on-one practices work well at the start More collaborative, group based practices work well as the team matures 14
  • 15. Abridged Pairing One hour per day Pros: Cons: •  Very successful mentoring practice •  Unidirectional •  Targeted and feedback driven •  Can be frustrating for both parties •  Instruction is provided in the context •  Both parties can’t edit code of a real work problem concurrently (software limitation) ⇒  One of the best ways to teach skills meaning it’s not really a like OO and test driven development communication conduit. ⇒  Best for a short period of 15 enablement
  • 16. Collaborative Refactoring •  Offline practice •  Similar to a traditional code review but is done during the development of a story. Code Base •  Reviewer actually refactors sections and then talks them through with the original developer. The original developer does the same. 16
  • 17. Collaborative Refactoring Pros: •  Real world problems •  More interactive for the reviewer •  The code is the primary communication channel Code Base Cons: •  Time consuming •  Unintentional offense 17
  • 18. Code Review Blitz Discuss Split and review Discuss 18
  • 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 19
  • 20. Follow-the-Sun Pairing (work in progress) Check In India Day One Handover Story London Day Check In 20
  • 21. Developer rotations: the best way to teach practices 21
  • 22. Practice Champions Inculcate a remote team member with a certain skill for them to distribute 22
  • 23. Building Rapport Video Conferences without specific agendas 23
  • 24. Summary Try to use the code Bidirectional, base to communicate collaborative instead instead of just the of purely instructional phone Different practices are needed at different times, no one will do 24