Table of Contents
Fetching ...

Qualitative Analysis of the Teacher and Student Roles in Pair Programming

Linus Ververs, Trang Linh Lam, Lutz Prechelt

TL;DR

The paper investigates how Teacher and Student roles emerge in pair programming to bridge large knowledge gaps. Using Grounded Theory-inspired open and axial coding on 17 industrial sessions plus interviews, it defines six Teacher facets and two Student facets, along with four Teacher anti-patterns and one Student anti-pattern, providing actionable learning goals and warning signs. The findings offer concrete patterns for knowledge transfer, including push/pull dynamics, back-channel signaling, and mindful pacing, with practical advice for practitioners to improve pairing and collaboration. The study advances qualitative theory of pair programming roles and points to future work to build a fuller Grounded Theory (NN26b-CHASE) and evaluate impact across contexts.

Abstract

Background: Pair programming is a well-established and versatile agile practice. Previous research has found it to involve far more different roles than the well-known Driver and Observer/Navigator roles. Pair programming often involves heavy knowledge transfer from mainly one partner to the other. Objective: Understand how to fill the ensuing Teacher and Student roles well (positive behavioral patterns). Understand how they may break (anti-patterns). Method: Open coding and axial coding of 17 recorded pair programming sessions with 18 developers from 5 German software companies, plus interviews with 6 different developers from 4 other German companies. Results: We describe six facets of effective Teacher behavior (e.g. Prioritizing Knowledge Transfer) and two facets of effective Student behavior (e.g. Expressing Knowledge Wants). We describe four harmful would-be-Teacher behaviors (e.g. Pushing Unwanted Knowledge), and one harmful would-be-Student behavior (Failing to Provide a Back Channel). Conclusions: The role facets can serve as learning goals and to-do list for developers who want to develop strong pair programming skill. The anti-patterns can serve as warnings for one's own general behavior and as triggers for immediate meta-discussion if they occur within a pairing session.

Qualitative Analysis of the Teacher and Student Roles in Pair Programming

TL;DR

The paper investigates how Teacher and Student roles emerge in pair programming to bridge large knowledge gaps. Using Grounded Theory-inspired open and axial coding on 17 industrial sessions plus interviews, it defines six Teacher facets and two Student facets, along with four Teacher anti-patterns and one Student anti-pattern, providing actionable learning goals and warning signs. The findings offer concrete patterns for knowledge transfer, including push/pull dynamics, back-channel signaling, and mindful pacing, with practical advice for practitioners to improve pairing and collaboration. The study advances qualitative theory of pair programming roles and points to future work to build a fuller Grounded Theory (NN26b-CHASE) and evaluate impact across contexts.

Abstract

Background: Pair programming is a well-established and versatile agile practice. Previous research has found it to involve far more different roles than the well-known Driver and Observer/Navigator roles. Pair programming often involves heavy knowledge transfer from mainly one partner to the other. Objective: Understand how to fill the ensuing Teacher and Student roles well (positive behavioral patterns). Understand how they may break (anti-patterns). Method: Open coding and axial coding of 17 recorded pair programming sessions with 18 developers from 5 German software companies, plus interviews with 6 different developers from 4 other German companies. Results: We describe six facets of effective Teacher behavior (e.g. Prioritizing Knowledge Transfer) and two facets of effective Student behavior (e.g. Expressing Knowledge Wants). We describe four harmful would-be-Teacher behaviors (e.g. Pushing Unwanted Knowledge), and one harmful would-be-Student behavior (Failing to Provide a Back Channel). Conclusions: The role facets can serve as learning goals and to-do list for developers who want to develop strong pair programming skill. The anti-patterns can serve as warnings for one's own general behavior and as triggers for immediate meta-discussion if they occur within a pairing session.

Paper Structure

This paper contains 37 sections, 1 figure.

Figures (1)

  • Figure 1: Timeline of session PA3, where each example we discuss as part of this article is annotated. We highlighted the problematic episodes with red and the less problematic ones in blue.