はじめに
- Scott Ambler
- Mark Lines
が提唱しているDAD(Disciplined Agile Delivery)の概要をまとめる。
XP(Extreme Programming), Scrum, Lean, といったアジャイル手法の1つであるが、それらを総合的に利用しながらエンタープライズ向けに作られたコンセプトとなっている。
日本語の翻訳はこちら。(藤井智弘さん監訳)
日本版の公式サイトDisciplined Agile Deliverty - Japanも立ち上がっている。
定義
DAD とは、、、、
The Disciplined Agile Delivery (DAD) process decision framework is a people-first, learning-oriented hybrid agile approach to IT solution delivery. It has a risk-value delivery lifecycle, is goal-driven, is enterprise aware, and is scalable.
日本語版の訳より
ディシプリンド・アジャイル・デリバリー(Disciplined Agile Deliverty)プロセスフレームワークとは、ITソリューション・デリバーリのための、人を最も重視した学習指向のハイブリッド型アジャイルアプローチである。このフレームワークは、"リスクと価値によるライフサイクル"に基づき、ゴール駆動型で、スケーラブルであり、企業の基幹を支えるソフトウェアの開発にも対応する。
特徴
特徴をマインドマップにすると、上記の定義に含まれている形容詞が列挙される。(本より抜き出したものに、ほんの少し注釈を加えた)
ゴール駆動、プロセスフレームワーク
本書の中には、マインドマップが多くでてくる。これは、DADが「ゴール駆動」であることの強い反映だと思う。また、「プロセスフレームワーク」であるから、手順的な(プリスクリプティブな)プロセスではないことにも関連している。後述するが、各フェーズごとに「ゴール」が宣言的に書かれており、手順が書かれている訳ではない。組織が自分たちの手法としていくための考え方である。
ハイブリッド
また、「ハイブリッド」というのは既存のアジャイル手法の組み合わせになっていること(RUPも含めて)。そして、「デリバリーライフサイクル」として、RUPに似た「フェーズ」概念が出てくる。「方向付け」/「構築」/「移行」の3フェーズである。全体としての手法づくりは、既存アジャイル手法バリエーション+RUP、の色が濃い。
人、アジャイル
「アジャイル」そして「人」を中心に据えている。アジャイル宣言を掲載し、それを企業用に延長したDADバージョンのアジャイル宣言を作っている。もう今となっては、アジャイルでないものは受け入れられないかのようだ。
ウォーター・スクラム・フォール
まえがきに、「プロセス戦争は終わった、そしてアジャイルは勝利を収めた」と Dave Westが書いている。そして、「ウォーター・スクラム・フォール」についても言及している。真ん中にスクラム開発を持ちながら、「ウォーター・スクラム」はなかなか開発を開始できない準備期間を、「スクラム・フォール」は開発後にさらにテストが必要で運用までにコストがかかるプロセスを言っている。本書はこのアジャイル採用の失敗パターンをなんとかしたい、といっている。既存の企業組織の中でうまくアジャイルチームとその外側をつなぐ、アジャイルな「ウォーター・スクラム・フォール」と言えるかもしれない。
フェーズ
フェーズはRUPから借りた用語を使って3つ。
- 方向付け(Inception)
- 構築(Construction)
- 移行(Transition)
3つであることはこの手法のフラクタル性(後述)のためだと思う。
(http://disciplinedagiledelivery.com/ から図を引用。)
フェーズごとに繰り返し活動(イテレーション)がある。
フェーズ毎のゴール
「方向付け」/「構築」/「移行」の3フェイズそれぞれにゴールが、さらに継続的に意識する「作業進行中」のゴールも提示される(この図の4色は各文献で統一されてフェーズを表現している)。
公式サイトでは、さらに、それぞれのゴールが分割されてマインドマップで示されている。
本書の大半は、この各ゴールの記述、バリエーション、パターン、アンチパターン、事例、に費やされている。
フェーズとリズム
アジャイルの3Cと呼ばれるリズムが、フラクタルに各レベルで現れる。
3Cのリズムとは、
- 調整 - Coordinate
- 協同 - Collaborate
- 完成 - Conclude
で、これらがサイクルを持っていることを言う。
3つのレベルとは、
- リリースサイクルのレベル(方向付け、構築、移行の各フェーズに対応)
- イテレーションのレベル(イテレーションの最初に計画をし、イテレーションに入り、最後にふりかえる)
- 日々の活動のレベル(朝会ではじまり、協同作業をし、構築で終わる)
つまり、DADのサイクルは3つのレベルになっているということ。そしてどのレベルにおいても、3Cのリズムがあるということ。(http://disciplinedagiledelivery.com/ から図を引用。この図には最下層の「日々のレベル」がないけど)
典型的パターン
典型的なプロセスのパターンが4つ示されている。(http://disciplinedagiledelivery.com/ から図を引用)
- スクラムを利用した基本バージョン
3. リーンCD(Continuous Delirvery)バージョン
利用する場合には、自分の組織の状況にあわせて、上記を選んでスタートし、それをカスタマイズしていく。
いくつかの気づき
エンタープライズ対応
エンタープライズ対応ということで、これまでアジャイルに含まれていなかった、「ガバナンス」「文書標準」「レビュー」「エスカレーション」「規制」「教育」「運用」「予算」「メンバー評価」などという言葉が出てくる。これまでアジャイルが中心的には言及していなかった、リアルな大企業で普通に聞く言葉群だ。
例えば、
- 契約方法やリソースの戦略が「方向付け」の「予算確保」に登場する。
- (あとで追記)
アーキテクチャとフェーズ
言葉として、これまでアジャイルが「わざと抜いてきた」大域構造を示す言葉群、「アーキテクチャ」、「フェーズ」を積極的に入れている。これはRUPの影響が強い。もちろんAmblerだからだし、SAFeも同じ。また、Amberの過去の仕事から、アジャイルモデリング(AM)、アジャイルデータ(AD)、などの視点も入っている。
私はモデリングとアーキテクチャに特に興味があるため、活動ゴールの中にモデリングが位置づけられているのがうれしい。
ちなみに、モデリングへの言及がある場所に星を付けてみた。JIT(Just-in-Time)その場「モデルストーミング」というモデリング・ファシリテーション、UMLの利用、ユースケースモデリング、UIモデリング、アジャイルモデリング、BMPNによる業務フローモデリグ、などにも言及がある。
私のポジション
最近「アジャイルプロセスフレームワーク」と呼ばれるものが「エンタープライズアジャイル」という言葉とともに出てきており、その最右翼の2つがこのDADとSAFeである。
これらは本当にアジャイルだろうか?という質問について、賛否両論あろうが、私は「自分の会社や組織やソフトウェア開発が良くなる」のであれば、なんだって意味がある、というスタンス。「正しい正しくない」(right or wrong)の話ではなく自分の組織が「現状よりよくなるかどうか」(better)を大切にしたい。そういう意味では、なるほど、と関係者が思い、トライしてみて、うまく行きそうならやる、というのが正しい態度だと思う。
これまでアジャイルがそのままでは届かなかった層に届く言葉が、この手法には含まれていることは確かなのである。