アジャイルのSwarming(群がる)について
アジャイルの根幹を支える考え方としてSwarmingがあります。直訳すると群れるです。アジャイルにおける動くソフトウエアを素早くかつ反復的に提供するというプロセスにおいて、このSwarming(群がる)を考えていきます。
この群れるというのをもう少し具現化すると「1つの問題を皆で群がって解決する」という意味合いがあります。A、B、C、DといったえものあったときにAをチーム全員で片付けて、次のBを全員でやっつけてC→Dといった形で物事を進めていきます。
スクラムでのSwarming(群がる)
スクラムでは、プロダクトバックログを作り、スプリントのタイムボックスでリリース判断可能なインクリメント(成果物)を作り出していきます。そのインクリメントを作る開発チームがどう作るべきかのアプローチを考える際にSwarmingを考えていきます。
アジャイルでいうところのスクラムやXPの文脈でいえば、Swarmingはモブプロやペアプロのイメージが強いでしょう。モニターを全員で見ながらドライバーとナビゲーターに分かれて、全員でひとつのアイテムを解決していきます。
一方、多くのスクラムチームは、スプリントバックログから開発チームのメンバーが各々タスクを取って分担していく形で開発が進められています。
前者のほうは、各開発者が別々のストーリーで働くのではなく、すべての開発者がひとつのストーリーで働く(群がる)ということです。どちらも目的はより多くのストーリーを完成させることです。
群がるべき対象の「粒度」を考える
すべてのタスクをモブプロでやるのは難しいにしても一定の固まり(ストーリーやスプリントバックログ)を全員でやることは皆が経験があるはずです。もっと広げると案件ごとに人を割り当てていくケースもあるでしょう。
どの粒度の対象物であれば、より効果的に群がることができるかを考えることは大事になってきます。