Pair Programming

... in theory and in practice

Eric

Carraway

  • Contract UI Developer

      at Rackspace

  • Bootcamp graduate

      Coder Camps (Houston)

  • Previous life as a 

      HS Band Director

Kayden aka Sharky

Althen

  • Software Developer in Test

      at Rackspace

  • Bootcamp graduate

      MakerSquare (Austin)

  • Previous life as a

     South Asia linguist

Who are you?

Who here

works in an

Agile environment?

Who here has

pair programmed?

Who here liked it?

Who here didn't?

Pair Programming

What is it, really?

 

Why do we do it?

 

How can you incorporate it into your workflow?

PART I

What is pair programming?

The Theory

Two Programmers

Single Workstation

"Driver"

  • Controls the keyboard and mouse
  • Tactical aspects 
  • Focuses on the micro
  • Implements the code

"Navigator"

  • Directs the Driver
  • Strategic thinking
  • Focuses on the macro
  • Safety net
  • Guide

How do you

choose roles?

Swap Roles

... frequently!

Antipatterns

Disregard Levels/Roles
Silent Driver
Infrequent Swapping

Cowboy Coding

Closed-mindedness
Ego.

Part II

Why we do it.

The Practice

Avoiding silos
Tackling large tasks
Onboarding new devs

Code Quality
Abstract Tasks
Increased Productivity

Why else do we do it?

Comaraderie

Knowledge Sharing

Part III

How do you incorporate pair programming into your workflow?

TL;DR

Just do it.

Work Environment?

Managerial Support?

Team Member Buy-In?

Quick Start Guide

Planning

  • The Problem
  • The Solution
  • The Workflow

Starting

  • Roles
  • Levels
  • Mental Map

Developing

  • Communicate. Communicate. Communicate.
  • Avoid antipatterns
  • Swap roles frequently
  • Assess and improve through iteration
    • What's working?
    • What can be improved?

Retrospective

  • Share with your pair 
  • Share with your team
  • Share with us!

Final Words

What is pair programming?

Why do it?

How can you integrate it?

Questions?

Eric

Carraway

GitHub: @ericcarraway

Twitter: @CarrawayEric

 

eric@ericcarraway.com

Kayden aka Sharky

Althen

GitHub: @sharkySharks

Twitter: @sharkyAlt

 

kaydenalthen@gmail.com

Made with Slides.com