アジャイル開発のスケールアップはアジャイルリリーストレインが鍵を握る
「アジャイル開発をスケールアップさせるには何が必要か?」という思索を深めている時に、とてもぴったり来た本が「アジャイル開発の本質とスケールアップ 変化に強い大規模開発を成功させる14のベストプラクティス (IT Architects’ Archive)」だった。
「アジャイル開発の本質とスケールアップ 変化に強い大規模開発を成功させる14のベストプラクティス (IT Architects’ Archive)」の本をざっくり読んでみて、考えたことをメモ。
【元ネタ】
Developers Summit 2010:CodeZine(コードジン)
Jazz 日本ユーザコミュニティ - デブサミ2010参加レポート「Agility@Scale(アジャイル開発のスケールアップ)を実現する14のベストプラクティス」
Developers Summit 2010:CodeZine(コードジン)
steps to phantasien(2010-02-20)
19-B-2 Agility@Scale(アジャイル開発のスケールアップ)を実現する14のベストプラクティス/玉川憲 - しあわせプログラマ
「アジャイル開発の本質とスケールアップ 変化に強い大規模開発を成功させる14のベストプラクティス (IT Architects’ Archive)」の中で最も重要な概念は「アジャイルリリーストレイン」と「スクラムオブスクラム」だと思う。
アジャイルリリーストレインは、複数のサブチームのイテレーションの同期を取りながら、全コンポーネントを小規模リリースしていくこと。
まさに、複数の列車が同じ時刻表に従って同期しながら、同じタイミングで発車するイメージ。
スクラムオブスクラムは、複数のサブチームがある時、開発チームのリーダーであるスクラムマスターを集めたチーム。
スクラムオブスクラムはデイリースクラムと同様、各サブチームの状況や課題を報告し、サポートする。
この会議PMBOKのCCB、ITILのCABに似ている。
つまり、サブチームのリーダーが集まって、各チームの課題を棚卸する場に近い。
この2つが重要だと思う理由は、複数のアジャイルなチームを制御するには、お互いのイテレーション計画を同期して、サブチーム内で解決できない問題はもう一つ上の層で解決する仕組みが必要だからだ。
各サブチームのイテレーション計画がバラバラで統制が取れない場合、一つのチームの生産性が良くても、一番効率の悪いチームに巻き込まれてしまうから。
又、自チームで解決できない問題が出た時に、複数のサブチームのリーダーが互いに協力しあう場がなければ、すぐにチームは混乱するだろうから。
特にアジャイルリリーストレインが重要だと思うのは、組み込み製品の開発やパッケージ製品の開発でも、イテレーション計画の同期を取る状況がよく現れるからだ。
組み込み製品の開発では、HW開発チームとSW開発チームで、お互いにHWとSWを結合しながらテストしていくしかないが、その時に同期が取れないと、品質は安定しない。
パッケージ製品の開発でも、コンポーネント単位に開発チームが存在するから、全チームのコンポーネントの同期を取る時に、ビッグバンという結合テストでいつも大きな障害が発生しやすい。
だから、イテレーションの同期を取るのは非常に高度な技だと思う。
「塹壕よりScrumとXP」でも、スプリントの同期を取ることの重要性を述べている。
Redmineによるチケット駆動開発を導入すれば、更にアジャイル開発のスケールアップを支援できると思う。
僕なら、Redmineの複数プロジェクト機能を使って、各サブチーム単位で、タスク管理と課題管理の各プロジェクトをRedmineに作る。
日々の作業はタスク管理のプロジェクトで管理する。
チーム内で生じた問題や質問などは課題管理のプロジェクトにまとめて、チーム内で基本は処理するが、解決できない場合は、CCBやCABのような課題管理会議の場で、複数のサブチームのリーダーが議論して棚卸しする。
つまり、スクラムオブスクラムを実施して、一つの大規模プロジェクト内部で発生した各サブチームの課題を解決していく。
そして、Redmineのバージョン継承機能を使って、全チームへ同期すべきイテレーションを継承して、全チームに意識させる。チーム内では、同期すべきイテレーションよりも短いサイクルでイテレーションを回しても良い。
これによって、アジャイルリリーストレインを浸透させることができる。
最後に、RedmineのSubtasking機能を使って、ストーリーカードとタスクカードに親子関係を導入する。
ストーリーカードは顧客へ提供する価値の観点で集計できるし、タスクカードは開発チーム内部の詳細な進捗管理として集計できる。
これらの機能を使えば、大規模プロジェクトにアジャイル開発を適用させやすくなるだろう。
Redmineのエンタープライズ機能はアジャイル開発のスケールアップを強力に支援してくれるはず。
IBMの記事を読む限り、アジャイル開発のスケールアップに関してかなりのノウハウを持っているように思われる。
色々追いかけてみたい。
| 固定リンク
「Redmine」カテゴリの記事
- Redmineのバージョン設定でプロジェクトの設定方法が違う(2024.06.23)
- ウクライナのRedmine開発者が作ったRedmineテーマやプラグイン(2024.06.18)
- 第26回redmine.tokyo勉強会の感想~多様性はコミュニティが成功する重要な要因の一つ #redmineT(2024.06.15)
- Redmineで持ち株管理する事例(2024.04.21)
- チケットはデータでとプロセスの二面性を持つ #redmine(2023.12.24)
「ソフトウェア工学」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想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)
コメント