📒
SDV503
  • SDV503
  • Command Prompt
    • Windows Command Prompt
    • Mac OS Terminal
  • GIT & GITHub
    • GitHub
    • Git
      • Git Workflow
        • Forking Workflow
  • README
    • How to write a readme.md file?
    • Write a better README.me
    • Generate a README for GitHub Repo Quickly
  • Code-comments
    • Clean Comments
    • Writing Comments in a Good way
  • Pair Coding
    • What is Pair Coding?
    • Pair Programming Experience
  • Programming?
    • What is Programming?
    • What Is A Programming Paradigm?
    • JavaScript Programming Paradigms
  • Number Systems
    • Decimal and Binary numbers
  • JavaSCript
    • Introduction To JavaScript
      • The JavaScript Engine
  • JS Call Stack
    • JavaScript call stack
    • JavaScript & Memory
      • Memory Leaks in JavaScript
    • Execution Context and Execution Stack in Javascript
      • Javascript Execution Context and Hoisting
  • JavaScript Variables
    • Introduction to JS Data Types
    • Primitive and Non-Primitive
    • Operator precedence and associativity
      • JS Operators Part One
      • JS Operators Part Two
      • JS Operators Part Three
    • Clean Code for JS Variables
  • JavaScript Scopes
    • Scope (Chain) Visualized
  • Javascript  — this keyword
  • JavaScript Data Types
    • More JavaScript Data Types
  • JavaScript Expressions and Statements
  • if/else, switch and ternary operator
    • If/Else statement
  • Switch Statement
  • Ternary Operator
  • JavaScript Loops
    • Loops in JavaScript
      • Trouble With Loops
  • Objects
    • JavaScript Objects
      • Prototypal Inheritance Visualized
      • JavaScript Number Object
      • JavaScript String Object
  • Functions
    • JavaScript Function Part One
    • JavaScript Function Part Two
    • Immediately Invoked Function Expressions ~ IIFE
    • JS => Arrow Functions
    • JavaScript Callback
    • Hoisting in JavaScript
      • Hoisting Visualized
    • Recursion Functions
    • Curry and Function Composition
  • JavaScript Features
    • JSpread Operator
    • JavaScript Built-in Functions & Objects
  • Data Structures&Algorithms
    • JavaScript’s Data Types
    • Data Structures in JavaScript
      • Introduction to Big O Notation
      • Big O Notation in Javascript
      • Linked Lists
        • Linked Lists — 2
      • Hash Tables
      • Stack & Queue
  • TLDR
    • Single quotes (‘ ’) and double quotes (“ ”) in JavaScript
  • ES6
    • Generators and Iterators
    • Javascript Classes
    • JavaScript closures
    • JavaScript Promises & Async/Await
      • Event Loop Visualized
  • C#
    • What does C#? (C Sharp)
    • C# vs JavaScript
    • What Is The Difference Between C#, .NET, ASP.NET, Microsoft.NET, and Visual Studio?
    • What is the .NET Framework?
    • Methods and Properties of Console Class in C#
    • Datatypes in C#
    • C# Code Comments
    • The if statement
    • The switch statement
    • Loops
    • Comparison operators
    • Addition assignment operators
    • The String Interpolation Operator
    • Arrays
    • Lists
    • Dictionaries
Powered by GitBook
On this page

Was this helpful?

  1. Pair Coding

Pair Programming Experience

PreviousWhat is Pair Coding?NextWhat is Programming?

Last updated 4 years ago

Was this helpful?

by Cody Duval Many teams at Stride pair program all day / every day. When it works, pair programming brings with it a multitude of benefits, including fewer bugs, more maintainable code, and an efficient transfer of technical and domain knowledge between team members. But it can also be exhausting (and stressful!). Here are some things we’ve found that can make a pairing session more productive:

Get on the Same Page

If it’s your first time with a pairing partner, take a moment to talk about your programming background, your experience with the editor, IDE, or another tooling in front of you, and generally how you like to work. Instead of having to intuit these things throughout the pairing session, saying them out loud helps to set expectations and get both pairs on the same page.

Use a Time Box

We use a kitchen timer to limit each pairing session to a 25-minute “.” When the bell rings, we find a logical place to stop, stand up, and take a 5-minute break. Pair programming is intense, and by forcing breaks throughout the day, we’ve found it easier to sustain a full day of pairing. Just as important, when a slack notification goes off in the middle of a Pomodoro, you can happily ignore it until the break. Don’t break that flow!

Use Two Monitors & Two Keyboards

Two keyboards and two monitors are critical to a sustainable pairing session. It’s nearly impossible to stay engaged if you can’t see the code being written, and a second keyboard makes it easy to jump back and forth without a lot of ceremonies.

Say It Out Loud

A silent pairing session is a bad pairing session. It can feel a little weird at first, but thinking out loud is an important part of pair programming. The only way to really collaborate on a piece of code is to talk to your partner. If you are sitting silently while your pair types away, don’t be afraid to interrupt and ask them to explain their thinking.

Ship It

One of the key benefits of pair programming is the immediate code review, discussion, and refactoring that occurs around a piece of code. But be mindful of and working a problem way beyond the point it adds value. At some point, you need to agree the feature is done, commit it and move on.

Following these five steps will ensure your pair programming experience is a good one — and possibly something you’ll look forward to doing again.

Pomodoro
gold plating