
協力コーディング:「ペアプログラミング」がなぜ効果的なのか
ケイボン・ガファリ著

Haloをプレイしていて、次の目的地がどこにあるのか全く分からなくなったことはありませんか? 最後のゴールドエリートを倒したばかりなのに…さて、次は何をすればいいのでしょう? 「次はどこへ行けばいいんだ?」と考え始めたまさにその時、パートナーのコルタナが見張っていて、HUDに「ドアはこちらです、チーフ」とナビゲーションポイントを表示してくれます。もちろん、それはとても分かりやすいものですよね!
どうしてあのドアを見逃したんだ? 逆に言えば、コルタナはアサルトライフルの扱いがあまり得意じゃない。あんなに皮肉屋なのに、君がいないと戦場では役に立たない。君たち二人は宇宙を救うという目標に何か貢献してくれる。
十分な時間と思考があれば解決できるはずなのに、コードの問題で行き詰まったことはありませんか?あなたは素晴らしい開発者です。天才です!あなたは十分に優秀で、十分に賢く、そして…まあ、あなたもご存知でしょう。
立ち上がって歩き回り、問題について考えます。
メールをチェックして、問題について考えてみましょう。
コーヒーを飲んで、問題について考え、
Facebookをチェックして問題について考え、
家に帰って問題について考え、
寝て、問題について夢を見ます。
やったー!やったね!

締め切りまであと1日になりました。
もちろん、自分のキューブから頭を出して、同僚や上司、あるいはマネージャーにアドバイスを求めることもできたでしょう。でも、自分で問題を解決できるなら、なぜ彼らの時間を無駄にして、自分が無能で頼りない人間だと思われたくないのでしょう?それに、あのバカどもがあなたに知られていないことなんてあるでしょうか?
プロジェクトマネージャーとして、私はこのような状況を何度も見てきました。だからこそ、この社会的障壁を取り除き、多くのメリットをもたらすペアプログラミングを強く推奨しています。
どのように動作するのでしょうか? 開発者 2 名、ワークステーション 1 台。
片方は「ドライバー」の役割を担い、実際にコーディングを行い、コードの戦術的な側面に焦点を当てます。もう片方は「オブザーバー/ナビゲーター」の役割を担い、リアルタイムでコードをレビューし、コードがどこに向かうべきかについて、より高次の戦略的視点を持ちます。これらの役割は一日を通して交互に交代し、2人の間でのコミュニケーションを促進します。
片方は全体像に焦点を当て、もう片方はヘッドショットに焦点を当てています。問題は解決しました。
2人の開発者を1つのタスクに投入するのは直感に反するように思えるかもしれませんが、研究によると、最終的にはコードの品質向上、生産性向上、コードカバレッジの向上につながることが示されています。ペアプログラミングは、比類のない知識共有を体系的に実現する方法を提供します。
開発者として、あなたは他に類を見ない何かをもたらします。その知識を共有し、より強くなれば、もしかしたら、宇宙を救うことができるかもしれません。*
*あなたは宇宙を救うことはできません。
ケイボン・ガファリは、ベルビューにあるソフトウェア製品コンサルティング会社 FNX Studiosのプロジェクトマネージャーです。彼は価値の付加、行動経済学、そしてオックスフォードコンマの使用を正当化するための不要な第三項目の活用を楽しんでいます。FNX Studiosのテックログの詳細はこちらをご覧ください。Facebook、 Twitter、LinkedInでフォローしてください。