スクラムオブスクラム
「アジャイル開発の本質とスケールアップ 変化に強い大規模開発を成功させる14のベストプラクティス (IT Architects’ Archive)」のプラクティスの一つにスクラムオブスクラムがある。
考えたことをメモ。
【元ネタ】
「塹壕よりScrumとXP」
大規模プロジェクトで複数の開発チームがScrumをベースにアジャイル開発していたとする。
その場合に注意すべき点は何だろうか?
「アジャイル開発のスケールアップ」という従来から長く指摘され続けた問題に対し、その解決のキーワードとなる概念は、アジャイルリリーストレインとスクラムオブスクラム。
まず、「アジャイルリリーストレイン」とは、複数の電車が同時刻に発車/到着するように、複数の開発チームのスプリントを同期させること。
「塹壕よりScrumとXP」では、スプリントを同期させる理由として、各チームの編成を行うタイミングが各チームのスプリントの間であること、スプリントを同期しているから他チームとスプリント計画ミーティングを一緒に実施出来ること、管理上のオーバーヘッドを減らせることの3つを指摘している。
これは重要な指摘だ。
何故なら、「アジャイル開発の本質とスケールアップ 変化に強い大規模開発を成功させる14のベストプラクティス (IT Architects’ Archive)」にも書いているように、一つの開発チームのスプリントが遅れることによって、他のスプリントにも遅延が影響するからだ。
例えば、開発チームAがスプリントで作っているライブラリを他の開発チームが使う予定の場合、ライブラリの提供が遅れれば、他の開発チームにも悪影響を与えてしまう。
丁度、TOCの「作業が早く終わっても伝播しないが、遅延は伝播してしまう」言葉を思い出させる。
次に、「スクラムオブスクラム」とは、各チームのスクラムマスターが定期的に集まる課題管理会議。
「塹壕よりScrumとXP」では、Scrumマスタが集まる定期的なミーティングであり、自身のチームの進捗や問題点を他チームのScrumマスタと共有して議論する場だ。
この会議では、チームリードと呼ばれる人がいて、Scrumマスタの1個格上のリーダーが議論をコントロールする。
スクラムオブスクラムが必要な理由は、一つのチームで解決できない問題を全チームが共有して、解決する方向へ持って行くことだ。
例えば、他チームが作るライブラリを早く提供して欲しい、とか、自チームは技術ノウハウが少ないので他チームのメンバーにヘルプで来て欲しい、とか、自チームの課題が実は他チームのスプリントに影響する、とか、他チームと調整しなければ自チームの進捗が遅れる状況はよくある。
だから、課題管理会議を定期的に開き、その場で各チームの課題を棚卸する時が多いだろうと思う。
「アジャイル開発の本質とスケールアップ 変化に強い大規模開発を成功させる14のベストプラクティス (IT Architects’ Archive)」では、大規模なアジャイル開発チームをアジャイルコンポーネントチーム・スクラムオブスクラム・ステアリングコミッティーの3つの階層に分けて編成することを推奨している。
最終的にはこのようなチーム構造になるだろうと思う。
同様の概念は、PMBOKのCCB、ITILのCABに相当する。
PMBOKのCCBは変更管理会議と呼ばれ、プロジェクトに発生する変更作業に対し、承認作業を行う委員会。プロジェクトのスコープ、成果物、WBSの変更は、公式な手続きを踏むことによって、ステークホルダー間の合意を取り、変更のトレーサビリティを容易にするために行う。
ITILのCABは変更諮問委員会と呼ばれ、ITの運用保守において、変更管理プロセスで行われ、変更要求とその対策(開発、テスト、リリース手順など)、作業計画を承認して、レビューを行う。
スクラムオブスクラムのような中間的な組織が必要になってくるのは、アジャイル開発だからというわけではなく、PMBOKでもITILでもCMMIでも同様に発生してくる問題なのだ。
システム開発でも、非機能要件と言うものが出てくるのと同じ。
小規模な開発なら無視できた非機能要件も、たくさんのコンポーネントを結合して一つの有機的なシステムとして捉えようとすると、非機能要件と言う全体最適な観点で解決しなくてはならない問題が出てくるのと同じなのだ。
「アジャイル開発のスケールアップ」には、従来のアジャイル開発では解決できなかった問題の本質がいくつか隠されているように思う。
色々考えてみたい。
| 固定リンク
「プロジェクトマネジメント」カテゴリの記事
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える(2023.02.14)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
「ソフトウェア工学」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- マイクロサービス設計は従来のアーキテクチャ設計と何が違うのか(2024.01.02)
- 「ソフトウェアアーキテクチャ・ハードパーツ」の情報リンク~マイクロサービスの設計技法の課題は何なのか(2023.11.12)
「チケット駆動開発」カテゴリの記事
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- プロジェクト管理の基本はテーラリング、Redmineはプロセスをテーラリングするツール(2022.04.21)
「Agile」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- 概念モデリングや設計原則は進化しているのか(2023.10.21)
コメント