BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース ペアプログラミングの心得 - 重要なのは一体感と便宜性

ペアプログラミングの心得 - 重要なのは一体感と便宜性

ブックマーク

原文(投稿日:2021/05/01)へのリンク

ベルリン自由大学コンピュータサイエンス研究所の研究者らによる最近の研究で、13企業におけるペアプログラミング(PP)セッションの分析が行われた。研究では、優れたペアプログラミングセッションには一体感と便宜性が関与する、と結論付けている。

論文の著者であるFranz ZierisLutz Prechelt両氏は、研究の動機を次のように説明している。

2人の開発者が並んで座っただけで生産性が急に向上する訳ではない、ということを確認した文献はいくつかありますが、ペアプログラミングを機能させる要素は何なのか、を取り上げた研究はほとんどありません。[…] 'よい'ペアプログラミングと'悪い'ペアプログラミングを分けるものが何かを解明することが、私たちの研究の目標です。最終的には、ペアプログラミングの実践者が実行可能なアドバイスを提供したいと思っています。

研究では、優れたペアプログラミングセッションの特徴として、2つのものを挙げている。最初の特徴である"一体感(togetherness)"は、よいペアリングを確立し、セッションを通じて共通のメンタルモデルを維持する能力、と説明されている。この中には、参加者の一方が相手のタスクの理解度を鋭敏に認識し、その不一致に対して適切に対応できることも含まれる。第2の特徴である"便宜性(expediency)"は、目前の問題への対処と、ペアプログラミングセッションの長期的な目標(オンボーディング、知識転移など)とのバランスを取る、ということである。

研究者らは例として、いくつかの誤解を重ねた末に、最初のトピックに立ち返ることのできたペアプログラマを紹介している。

この例では、セッションの始めの方で、J1の簡単な質問によってJ2の説明が中断されたことで、誤解が始まりました。その解決に2分近くを要しています。[...] 2人とも明確に、元のトピックに戻っています [...]

J2: "中央の[News]プラグインと、それぞれがひとつのウェーブを処理するプロセッサがいくつかあって、[...] ファイルサイズの変化をチェックするんだ。"
J1: "どの位の周期にするつもりなのかな?"
[… 2分間の誤解 …]
J1: "僕は、30秒にしたいと思うんだけど。"
J2: "周期は30秒だね、了解。すぐに[コードに]反映できるよ。"
J1: "OK。ところで、NewsPluginは、この中で何をするんだろう? この監視を全部やった上で、個々のウェーブプラグインに処理を移譲する、ということでいいのかな?"
J2: "いや、違うよ。NewsPluginは基本的に — cronサーバから周期的に呼び出されるだけなんだ [...]"

研究ではまた、ペアプログラミングのアンチパターンとして、"枝葉末節に捉われる"、"パートナを忘れる"、"パートナを溺れさせる"という3つを挙げている。最初のアンチパターンは、関係のない些細な部分を調べるのに時間を費やすことで、何が重要なのかを見失ってしまう、ということである。次の"パートナを忘れる"というのは、ひとりが目の前のタスクに集中してしまって、相手が自分のやっていることを理解しているかどうか配慮しなくなる、という状況について述べてたものだ。最後のアンチパターンは、それとはある意味逆で、一方が便宜性を犠牲にして自身の考えや行動を過剰に説明する、というものだ。

業界内では、そもそもペアプログラミングは必要なのか、どのような状況で実施すれば適切なのか、どうやって行うのが最善なのか、といった事について、多くの議論が重ねられてきた。心理学の修士号を持つソフトウエアアーキテクトのJacek Sokulski氏は、昨年のInfoQの記事で、"ソフトウエアの品質に対するペアプログラミングの効果はタスクの複雑性に依存する可能性がある、と述べている。"Commitment To Value: How to make technical projects worthwhile"の著者でコンサルタントのWes Higbee氏は、同じくInfoQの記事("Pair Programming Is No Panacea")で次のように警告している。

手法の選択に関しては、実際に仕事をする人たちのことを忘れてはなりません。採用した理由を知らされずに方法論を適用されても、よい結果を得られるはずがないのです。

論文の全体には、採用された方法論とデータサンプルが詳しく説明されている他、各ペアプログラミングパターンの例や、研究者らが選んだアンチパターンも紹介されている。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT