ぐるぐる戦法

ラウンドロビン設計とラウンドロビンレビューというのを読みました。
こういう手法があるのかと、感心したというか、教育とかの観点で良さそうだなと思いました。

ラウンドロビン設計は、3人以上がいる開発で、何かを設計するときに、いったん、全員が各々でラフスケッチをするところから始めて、スケッチを隣の人に回して1回転させて、自分の案との違いを確認し、そこに追加で自分のアイデアを書き加えて、さらに、1回転させて・・・・といくことを繰り返す設計手法です。

自分のアイデアと他の人のアイデアが組み合わさって、1人では考えつかなった設計に変化していって、短時間で洗練させられるようです。
原典なのかは不明だけと、「Design It! ―プログラマーのためのアーキテクティング入門」の第9章”アーキテクチャデザインスタジオを開く”で紹介されています。
この本によると、ワークショップ形式で全員で取り組んで90分で完成させると書かれてます。時間制限を設けることも大事なようです。
90分で終わるなら、普段の開発の中でも、取り入れてもいいかな。
設計レビューも不要だし、チーム内に新人の人が居ると教育にもなるし、良さそうです。
ただ、アイデアが発散したときに収束させるのが厄介かもしれないけど。

ラウンドロビンレビューは、レビューを複数名で、役割分担するのだけど、例えば以下のような役割で分担するとします。

  • 仕様面が正しく実装されているかをレビューする役割
  • テスタビリティをチェックする役割
  • メンテナンス性をチェックする役割
  • SOLID原則などの実装合理性や実装デザイン性をチェックする役割

役割をさらに、細かくして、1人複数の役割を分担してもよいと思います。
仕様面のチェックは、DB観点と画面観点で分けても良いし、SOLID原則は、それこそ、S/O/L/I/Dで分けても良いという具合に。
これのよいところは、大きいプルリク全体をマルっとレビューするときの気持ち的な負担が軽くなるように思います。
ただし、レビュー指摘が錯綜する可能性がありそうなので、それは、デメリットの1つかもしれないです。
本来、このラウンドロビンレビューは、役割を強制的に割り当てるので、メンバーのレベルが同程度のときに有効とされるのだけど、レベルが違う人が入っても、2~3回転させるルールにすると、弱いパートが補完されるし、教育観点が加わるので、それアリかもと思いました。
こちらは、WEBで記事を漁っていて見つけたものです。

アイデア出しのフレームワークにブレインライティングというのがありますが、ぐるぐる回すというところが、ちょっと似てるなと思いました。
ブレインライティングもやってみると、ちょっと面白いので、アイデアを量産しないといけない場面があったら、WEBでやり方を検索してみてください。

モブプロもラウンドロビンだし、他にも普段の仕事の中で、”ラウンドロビン○○” してみると良いかもです。

腕を胸の前で糸巻きするように回しながら、「ぐるぐる戦法」と言ってみるのも良いと思います。