【95】ペアプログラミングと「フロー」

グドニー・ハウクネス(Gudny Hauknes)、カリ・ロスランド(Kari Røssland)、アン・カトリン・ガナット(Ann Katrin Gagnat)

 何かに完全に没頭している時——夢中で何かをしていて、時間が経つのも忘れてしまっている時——それはきっと人間にとって幸せな状態です。その状態は「フロー状態」と呼ばれます。しかし、1 つのプロジェクトに関わるチームのメンバー全員が同時にフロー状態になり、それが長く持続するというのは難しいものです。フロー状態はいとも簡単に壊れてしまうからです。たとえば誰かに関係のないことを話しかけられ、それに返事をしたりすれば、すぐに集中力は途切れます。少しでも集中力が削がれれば、もうフローは維持できません。

 経験のある人なら知っているでしょうが、実はこのフロー状態の維持には「ペアプログラミング」が非常に役立つのです。まだペアプログラミングの経験がない人は、これから書くことを参考に、是非すぐに試してみてください。ただし、ペアプログラミングを成功させるためには、チームのメンバーが個々に努力するだけでなく、チーム全体としての取り組みも重要になります。

 ペアプログラミングをするにあたってまず大切なことは、ペアを組むパートナーが自分より経験が浅い場合、忍耐強く接することです。自分より技術のあるパートナーと組む人は、気後れすることなく接するのが大事です。人はそれぞれ違っています。その違いを尊重するのです。自分や他のメンバーの長所、短所がどこにあるのか、それを注意深く見るようにしましょう。気をつけて見ていれば、他のメンバーから学べることは驚くほど多いはずです。

 チーム全体としては、各メンバーの持つ技術や知識が、できるだけ多くのメンバーに広まるよう考えてペアプログラミングに取り組むことが重要です。各メンバーはペアを組んだ人と協力し合って作業を進めるわけですが、チームとしては、ペアを組むパートナーや、各人の担当するタスクが頻繁に変わるような体制作りをすべきでしょう。ペアのパートナーやタスクのローテーションに関して、皆の納得できるしっかりとしたルールを定めておくのです。何か問題が起きれば、一時ローテーションを止め、調整をするようにします。タスクを完了させることなく次のペアに引き渡しても大丈夫です。タスクを中断して次のペアに渡し、ペアのパートナーも変えて別の仕事を始めるのはとても上手くいかないように思えますが、後述する理由により、意外と上手くいくものです。

 ペアプログラミングはフロー状態の維持に役立つのですが、それは以下のような理由からです。

 フロー状態になれば生産性は驚くほど向上します。しかし、その状態は簡単に壊れます。自分をフロー状態にするため、またその状態を維持するために、あらゆる手段を講じましょう。