『ペアプログラミング―エンジニアとしての指南書』読書メモ

Laurie Williams, Robert Kessler著の『ペアプログラミング―エンジニアとしての指南書』を読んだメモです。

読もうとしたきっかけ

1ヶ月前、友人とペアプログラミングをしました。とても面白い体験でした。その時にこの本を見せてもらって興味を持ち、図書館で借りました。

見せてもらった時は、特に第3部が気になりました。人をタイプ付けし、ペアでのメリット・デメリットを解説されていました。ペアプログラミング以外でも人に教える時役に立ちそうだと感じました。

概要

ペアプログラミングについて書かれた本です。

本書は5部で構成されています。

 第1部:ペアプログラミングの説明

 第2部:ペアプログラミング実践上の詳細(ベストプラクティスや机の配置など)

 第3部:さまざまな種類のペアのメリットとデメリット

 第4部:ソフトウェア開発プロセス(XP, CSP)でのペアプログラミングに関する事例

 第5部:将来の方向性(既存の枠を超えたペアプログラミング, 有能なペアプログラマの7つの習慣, 付録)

面白かった部分

第1部 理解の習得

学生を対象とした実験。ペアプログラミングしたグループはしなかったグループと比べ、

  • 納期が安定する(期日内に課題を提出する)
  • コードが20%短くなる(設計がより良くなる、保守コストが減少する)

とのこと。工数が増加しないのは意外でした。

第3部 ペアプログラミングパートナー選択の法則

ペア選択のメリット、デメリット、対処方法の説明。各章冒頭の例はユーモアがあり面白かったです。

以下の組み合わせが参考になりました。

  • 専門家、平均的な人、新人
    • 技術レベルの分類
      • 専門家:説明できる
      • 平均的な人:できるけれど、説明できない
      • 新人:できない
    • 専門家と専門家のペアは、お互いへの尊敬。
    • 専門家と平均的な人のペアは、コミュニケーション。
    • 専門家と新人のペアは忍耐が大事だそうです。
  • 外交的、内向的
    • 自身のコミュニケーションパターンを把握して、相互理解に努めるのが大切だと感じました。

また、「第23章 過少な自尊心の問題」にあった、「とても賢い」は存在しない。ペアプログラミングでは全ての人に貢献できることがある。という言葉も刺さりました。どちらかというと自信が無い方なので。

理解できなかった部分

付録B ペアプログラミングの経済上の分析

経済上の分析はよく分からず飛ばしました。データが古い(199X〜年)からいいかなって。基本情報、応用情報で見た単語があるなあと思いました。

感想

監修者あとがきにあるように、この本はペアプログラミングだけでなく、あらゆるチーム開発に役立つと感じました。

ペアプログラミングはコミュニケーションが無いと成り立ちません。コミュニケーションはペアプログラミングでなくとも仕事で必要になるからです。

現在は会社に所属しておらず、組織にペアプログラミングを浸透させる機会は無いですが、組織に属してペアプログラミングを導入したいと思った場合は4, 5章が役に立ちそうです(ただし、万人にペアプログラミングが向いているわけではないそうです)。

またペアプログラミングしたいなあと思う1冊でした。