#97prog_ja 93 ペアプログラミングと「フロー」

プログラマが知るべき97のこと
僕はよく「あなたがトラックに轢かれて何かあっても大丈夫なように作業
ログや結果はWikiやチケットに書いてくださいね。(リスクヘッジしてね♪)」
と言う。同様の例えがこのエントリにもあったのでこのエントリが気に入って
しまった。

もちろんこのエントリーの題目にあるとおりペアプログラミングはとても秀逸
なことが書かれているのでそちらも良い。

ペアプログラミングはフロー状態の維持に役立つのですが、それは以下の
ような理由からです。
● 不慮の事態の影響を最小限に抑えることができる
縁起でもない話ですが、仮に開発チームのメンバーの何人かが、ある日突然
トラックに轢かれたとします。何人のメンバーが入院したらプロジェクトの
続行が不可能になるでしょうか?
(中略)
ペアプログラミングで、ペアのパートナーと担当するタスクをローテーション
させていれば、誰かが急にいなくなっても、その人が担当したタスクを引き継
げる人はおそらくいるでしょう。
● 問題解決が容易
何か問題に直面したとしても、ペアのパートナーに相談することができます。
一人で悩むより、誰かに相談した方が解決する可能性は高いでしょう。
● 統合がスムーズ
コーディングにおいては、他人の担当しているコードを呼び出すということが
よく起きます。その場合、メソッドの名前や、ドキュメント、テストなどが、
見てすぐに機能や内容のわかるものになっていると非常に助かります。もし
そうなっていない場合でも、自分がペアのパートナーがそのコードを以前担当
したことがあれば、機能や内容がすぐにわかり、簡単に呼び出せます。
● 割り込みの影響を緩和できる
● 新人が早くプロジェクトに馴染む


ペアプログラミングではプログラミングのスキルではなくて、ペアプログラ
ミングをするためのスキルが必要である、と2011年のDevelopers summitの
セッションで言っていたが本当にその通りだと思う。

ただし、ペアプログラミングを成功させるためには、チームメンバーが個々に
努力するだけでなく、チーム全体としての取り組みも重要になります。