「プログラマが知るべき97のこと/ペアプログラミングと「フロー」」の版間の差分

削除された内容 追加された内容
編集の要約なし
編集の要約なし
21行目:
ペアプログラミングはフロー状態の維持に役立つのですが、それは以下のような理由からです。
 
不慮の事態の影響を量小限に抑えることができる: 縁起でもない話ですが、仮に開発チームのメンバーの何人かが、ある日突然トラックに際かれたとします。何人のメンバーが入院したら、プロジェクトの続行が不可能になるでしょうか?この質問は「チームが特定のメンバーに過度に依存する体制になってはいないか」と問うているのですに知識や技術が一部のメンバーの独占になってはいないでしょうか、共有できているでしょうか。ペアプログラミングで、ペアのパートナーと担当するタスクをローテーションさせていれば、誰かが急にいなくなっても、その人が担当していたタスクを引き継げる人はおそらくいるでしょう。滞りなくタスクが引き継がれれば、チームの全体としてのフロー状態は維持されるはずです。

問題解決が容易: 何か問題に直面したとしても、ペアのパートナーに相談することができます。1人で悩むより、誰かに相談した方が解決する可能性は高いでしょう。また、担当するタスクはローテーションされていくので、あとで誰かが同じ問題に直面し、以前の解決策について検討することもあり得ます。最初の解決策が仮に最善のものでなかったとしても、あとでより良い解決策を別のペアが見つけるかもしれません。
 
統合がスムーズ: コーディングにおいては、他人の担当しているコードを呼び出すということがよく起きます。その場合、メソッドの名前や、ドキュメント、テストなどが、見てすぐに機能や内容のわかるものになっていると非常に助かります。もしそうなっていない場合でも、自分かペアのパートナーがそのコードを以前担当したことがあれば、機能や内容がすぐにわかり、簡単に呼び出せます。ペアのパートナーや担当するタスクをローテーションしていれば可能性は高まるでしょう。そのタイミングでペアのパートナーと相談し、ネーミング、ドキュメント、テストの改善を図ることもできます。
 
割り込みの影響を緩和できる: 作業中には、誰かがやってきて質問をすることもあれば、電話が鳴ることもあります。メールの返事を急いで書かなくてはならないこともあれば、すぐにミーテイングへ出席しなくてはいけない場合もあります。そういう場合でも、ペアプログラミングをしていれば、パートナーに作業を引き継いでもらえます。作業を一時離れていても、その間にパートナーがフロー状態を維持していれば、自分もすぐにフロー状態に戻れます。
 
新人が早くプロジェクトに馴染む: 担当するタスクと、パートナーをローテーションしていれば、新人が入った場合でもすぐに色々な部分のコードとチームのメンバーに馴染むことができます。
 
フロー状態になれば生産性は驚くほど向上します。しかし、その状態は簡単に壊れます。自分をフロー状態にするため、またその状態を維持するために、あらゆる手段を講じましょう。