ペアプログラミングってありますよね。
こちらの記事が周辺トピックも含めて簡潔にまとまっています。
ペアプログラミングをするようなチームは、だいたい4人とかです。や、色々あるかもですが、とりあえず4人としておきましょう。
4人のチームでペアプログラミングに取り組むとなると、ペアが2つできます。2人 ✕ 2ペアです。
ところで、前掲のページにもありますが、「サイドバイサイドプログラミング」という手法があります。前掲ページから引用します。
ペアやモブの影に隠れているが、サイドバイサイドプログラミングというアプローチもある。サイドバイサイドプログラミングは、各々は別々のタスクで別々のPCを使って作業を行うけれども、相棒を決めて互いの画面を見ながら頻繁に相談できるようにしておき、2人が密に協力し合いながら各々の仕事を終わらせていく。ペアプロ導入のハードルが高いと感じるのであれば、サイドバイサイドから試すことをお勧めする。
もともとの意味は、2人の人がいるときに、1人ずつ別の作業をしながらも、密に相談できる状態を保つ、といったことです。
思うのは、2人 ✕ 2ペアのとき、ペアとペアがサイドバイサイドプログラミングをしていると考えるとチーム開発はとてもうまくいくな、ということです。
ペア同士で、互いのペアの画面を見ながら頻繁に相談できるようにしておき、ペア同士が密に協力し合いながら各々の仕事を終わらせていく。
実際、普段そうやって仕事をしているな、と思います。それに名前をつけるとしたら、フラクタルペアプログラミング、かな?
ペアがいる。となりにペアがいて、ペア同士もまたペア(サイドバイサイド)といえる。
さらに隣を見れば、別のチームがいる。チーム同士もまた、サイドバイサイドといえる。
設計の相談や、ちょっとしたトラブルの解決、ペアで決めたことの共有。なんでも、いつでも、すぐにペア同士で話す。
チーム内で解決できないようなことは、なんでも、いつでも、すぐに他のチームと話す。そして、話したことは(必要に応じて)すぐにチーム内で共有する。
こうして見ると、ペアやサイドバイサイドという構造が入れ子になっていて、フラクタルっぽいな、と思ったのでした。