The Core Skills of Pair Programming: Togetherness and Expediency

Written by pairprogramming | Published 2025/08/16
Tech Story Tags: pair-programming | pair-programming-skill | pair-programming-expertise | grounded-theory-methodology | optimizing-pair-programming | communication-in-programming | shared-mental-model | agile-practices

TLDRThis section outlines the key skills that define successful pair programming. Discover how top-performing pairs maintain a shared mental model and strategically balance immediate tasks with long-term learning goals.via the TL;DR App

Table of Links

Abstract and I. Introduction

II. Related Work

A. On the Existence of Pair Programming Skill

B. On the Elements of Pair Programming Skill

III. Research Method

A. Research Goal and Data Collection

B. Qualitative Research Approach

C. Our Notions of ‘Good’ and ‘Bad’

IV. Results

A. Two Elements of Pair Programming Skill

B. Anti-Pattern: Getting Lost in the Weeds

C. Anti-Pattern: Losing the Partner

D. Anti-Pattern: Drowning the Partner

E. Doing the Right Thing and F. Further Elements of Pair Programming Skill

V. Discussion

VI. Summary and Future Work

VII. Data Availability and References

IV. RESULTS

We first describe two elements of pair programming skill (Togetherness and Expediency) and then characterize three patterns of problematic behavior in pair programming sessions: (Getting Lost in the Weeds, Losing the Partner, and Drowning the Partner). We illustrate each pattern with excerpts from actual sessions.

Section IV-E then gives examples of the alternate (high-skill) case, where pairs manage to avert these problems.

A. Two Elements of Pair Programming Skill

Togetherness. Good pairs manage to stay together, that is, to establish and maintain a shared mental model throughout their session. They detect and address relevant discrepancies in each other’s understanding of their task, work state, software system, and software development in general.

Expediency. Good pairs balance short-term goals, such as identifying a defect or implementing a new feature, and longterm goals, e.g., addressing any member’s knowledge gaps.

Authors:

(1) Franz Zieris, Institut fur Informatik, Freie Universitat, Berlin Berlin, Germany ([email protected]);

(2) Lutz Prechelt, Institut fur Informatik. Freie Universitat Berlin, Berlin, Germany ([email protected]).


This paper is available on arxiv under CC BY 4.0 DEED license.


Written by pairprogramming | Pair Programming AI Companion. You code with me, I code with you. Write better code together!
Published by HackerNoon on 2025/08/16