1 of 15

Learning to Pair 🍐

2 of 15

Warm Up

  • What have been some challenges that you’ve encountered when working in pairs/groups? What's hard about working in pairs/groups?

  • What are some things that have happened in a past paired/group project you've had that made it an enjoyable experience? What are some things that could potentially make it enjoyable?

3 of 15

Warm Up

  • What have been some challenges that you’ve encountered when working in pairs/groups? What's hard about working in pairs/groups?
    • Group projects require a certain degree of flexibility
    • Schedule differences
    • Speed and efficiency with typing/admin stuff, as well as lesson material
    • It’s more complex to work with more people
      • Especially with communication, conflict resolution
    • Communication styles might be different, making communication a challenge overall
    • Giving and receiving feedback (constructive and appreciative)
    • Bias
    • Division of labor, unbalanced workloads
      • What happens if somebody doesn’t get their part done?
      • Decision making, organizing who takes what task
    • ‘Pivots’ or changes in expected work are more difficult to organize
    • Micromanaging

4 of 15

Warm Up

  • What are some things that have happened in a past paired/group project you've had that made it an enjoyable experience? What are some things that could potentially make it enjoyable?
    • Learning to work through disagreements/problems
    • You can assign tasks based on each individual’s strengths, areas of growth, learning goals
    • You can get to know each other’s work preferences and eventually work more efficiently
    • The group can get more done (assuming they’re working well together!)
      • Synthesis of ideas, drawing from a more diverse pool of knowledge
      • Explore multiple ways/ideas of solving a problem - more meaningful learnings/discussion
    • General camaraderie - having something in common with your project partner(s)
    • Take the opportunity to check/challenge personal bias
    • Humans benefit from connecting with other humans!

5 of 15

How to successfully

work with a partner

6 of 15

Working Together

Working with a partner can be a wonderful experience! Some tips to keep in mind:

  1. Both parties are equally responsible for the projects success.
  2. Everyone is here to learn. Do not detract from someone’s learning experience. Share your knowledge and learning with each other.
  3. Professional skills are equally important skills to learn & practice as technical skills.

7 of 15

Planning for Success

Communication is important! It is better to over communicate with your partner than making assumptions that you both are on the same page.

  1. Beginning of Project - Define The Relationship (DTR)

8 of 15

Define the Relationship

DTR Guide

You will be kicking off your first paired project this afternoon and should start by going through a DTR conversation with your partner.

Plan to start EVERY paired or group project with a DTR

9 of 15

Planning for Success

Communication is important! It is better to over communicate with your partner than making assumptions that you both are on the same page.

  • Beginning of Project - Define The Relationship (DTR)�
  • Throughout the project use slack, hop on zoom calls, and use pull requests to communicate with one another.
    1. Everyday you should meet with your partner to set expectations, update one another on progress, and bring up any issues that you are facing. (ie. “stand up”)�
  • Make time to reflect on progress and problem solve any issues. Recommend doing this every 3 days. Reflection Meeting(Retro): What is going well? Any issues communication/workingstyle/schedule that needs to be addressed? Create a solution together and revisit DTR.

10 of 15

Pairing Strategies

11 of 15

In the video, “Strong Pairing” is the same as Driver/Navigator

Credit: Pair Programming by Christopher Davey

12 of 15

Paired Programming Strategies

Driver / Navigator

  • Shared Screen
  • Driver: the team member that is typing
  • Navigator: the team member guiding the code solution
  • Both members should be collaborating on how they are thinking about solving the problem/asking questions
  • Timebox so members can switch roles
  • The problem should be reasonably defined ex. Add the has_lost? method

13 of 15

Paired Programming Strategies

Ping Pong

  • Embraces the test driven development (TDD) approach
  • Ping: team member writes a test for the intended piece of functionality
  • Pong: team member writes the implementation code to make the test pass
  • Switch roles

14 of 15

Working together but apart

  • Use a branching workflow
    • Create branch for the feature off of the main branch
    • Write tests and passing code on local branch
    • Push local branch to GitHub
    • Create pull request�
  • Pull Requests (PRs)
    • Do not merge your own Pull Request when working with a partner or team
    • Partner should review your code, discuss any questions or suggestions using comments or hop on a call together
    • After discussions and questions, partner will approve the PR by merging it into the main branch

15 of 15

Summary

  • Communication is key throughout the entire process�
  • Working together helps improve both professional and technical skills
  • It takes practice! Figuring out how to work with others and understanding your own needs for how you work best is a process and may change due to circumstances. �
  • Remember everyone is here to learn!
    • Go fast, go alone; if you want to go far, go together.”
    • Do not limit your own learning or that of others by working alone.