Post on 28-May-2015
description
Disciplined Agile Delivery
“DAD本”の歩き方
ゼンアーキテクツ 岡 大勝
DevLOVE #134
岡 大勝 / Hiromasa Oka
1994ハートの情シス
1996日本DEC
2000日本HP
2002日本ラショナルソフトウェア
2003独立してSPEI
2013 株式会社ゼンアーキテクツ
一貫しているのは「エンタープライズ」
@OkaHiromasa
facebook.com/hiromasa.oka
どんな本
• 228 x 182 x 30 mm
448 pages
896 g
• Scott W.Ambler
Mark Lines 著
• 藤井智弘 with
DAD翻訳チーム訳
http://books.shoeisha.co.jp/book/b114533.html
DAD(ダッド)とは
• Scott W.AmblerとMark Linesによって編纂されたアジャイル開発プロセス
• アジャイルをエンタープライズ開発に
「定着」させる• IT産業のこれまで積み上げてきた
「知」を活かす
本書のメッセージ
• 変なこだわりは不要。コンテキストに合った
“ちょうどいい”進め方をしようぜ。
• エンタープライズの歴史は長い。
先人の知恵を、うまく使っていこう。
• そう、アジャイルの現実を直視して。
それを実現するプラットフォームとしてDADは作られた
アジャイルの現実
• Positive
–思った以上にエンタープライズで利用されている
–思った以上にプロジェクトが成功している
• Negative
– “ウォーター・スクラム・フォール”の蔓延
–ガバナンスや組織から目を逸らす
–流儀に固執し、“古い”ものを否定する
–ベンダーやアウトソーサーの怠慢
Context
Project Context
プロジェクトの...
–目的
–対象
–環境
–技術
–組織
–チーム
–経験
– etc…
同じContextは、存在しない
Why DAD
Enterprise Agile
Project Context
Enterprise Contextのイメージ
Waterfall
予算・期間利害関係者
組織 標準・規約
ROI
企業戦略
既存システム
計画
Agile Contextのイメージ
コラボレーション
価値Agility
顧客満足
動くソフトウェア
シンプルさ
自己組織的なチーム
変化への対応
Why DAD
Enterprise Agile
Enterprise Project Context
Why DAD
Enterprise Agile
Gap
Why DAD
Enterprise Agile
DAD?
Why DAD
Enterprise Agile
Why DAD
Enterprise
Agile
Enterpriseの真ん中に、Agileを持ってこよう
“伝統的”なエンタープライズ開発
Waterfall?
“伝統的”なエンタープライズ開発
Waterfall
“伝統的”なエンタープライズ開発
Artifact-Driven
“成果物駆動”
Waterfall
その結果、生まれた行動様式
Big XXX Up-Front
“最初にしっかりXXする”
BxUF
BxUFの活用例
• BRUF : Big “Requirements” Up-Front
–最初にしっかり要求定義
• BDUF : Big “Design” Up-Front
–最初にしっかり設計書作成
• 他にも、
– BMUF : 最初にみっちりモデリング
– BEUF : 最初に精緻にお見積もり
成果物駆動の活動
ゲート(ルールの強要、違反の発見)
“アジャイル”な開発とは
Agility?
“アジャイル”な開発とは
Agility?
“アジャイル”な開発とは
JIT
Agiilty?
“アジャイル”な開発とは
Just-In-Time“必要なときに必要なものを”
JITの活動
要求仕様の明確化
実装
要求データ設計
受入テスト
UI設計 実装テスト
データ作成
要求 実装受入テスト
要求業務
モデリング
受入テスト
タスク自体を必要なときに実施
Enterprise Agile
JIT
Enterprise Agile
JIT
予算・期間利害関係者
組織 標準・規約
ROI
企業戦略
既存システム
計画
NJIY
つまり、
「なんや、JITでいけるやん」
世代が変わった
• エンタープライズで成果物駆動は、既に「オーバースペック」
• テクノロジー– OSS、Web技術、クラウド
– 実際に書くコード量の減少
• ツール
• プラクティス
• プロセス
とはいえ、ギャップはある
• いわゆる「お見積もり」
• 多くの利害関係者
• 規制、ルール
• 既存システム
• 人と組織
JITとの乖離をどう埋めるか
Rhythm
3Cリズム
アジャイルの3Cリズム
• Coordinate: 調整(見通しを立てる)
• Collaborate : 協調(手を動かす)
• Conclude : 完成(整える)
Conclude完成
Collabolate協調
Coordinate調整
スクラム
スクラムの3Cリズム
Concludeインクリメントの
コミット
Collabolate1日の作業
Coordinateデイリースクラムミーティング
デイリーリズム
Conclude完了、
スプリントレビュー、スプリント
レトロスペクティブ
Collabolateスプリント
Coordinateスプリント計画ミーティング
イテレーションリズム
DAD
DADの3Cリズム
Concludeインクリメントの
コミット
Collabolate1日の作業
Coordinate日次調整ミーティング
デイリーリズム
Conclude完了、
イテレーションレビュー、ふりかえり
Collabolateイテレーション
Coordinateイテレーション計画セッション
イテレーションリズム
Concludeソリューションのデプロイ、
運用開始、拡張要求のフィードバック、利害関係者の喜ぶ顔
Collabolate構築フェーズ
Coordinate方向付けフェーズ
リリースリズム
方向付けフェーズ
• JITとエンタープライズのギャップを埋める
• プロジェクト全体の「見通しを立てる」
• 大まかなスコープ
• アーキテクチャーの指針と実現性確認
• 計画と予算(幅を持たせて)
• 各所との調整を開始する
BxUFに注意!!
Disciplined Agile
JIT
3C Rythm
Discipline
Agility
Practice
&
Strategy
プラクティスと戦略の地層
WaterfallPMBOK
CMMI
ITILRUP
XP
FDD
SCRUMLean
DADに息づくプラクティス
• スクラム– プロダクトバックログ
– 価値駆動ライフサイクル
– デイリースクラム
– リリース計画
– スプリント計画
– ・・・
• エクストリームプログラミング(XP)– コーディング規約
– 共同所有
– 継続的インテグレーション
– ・・・
• リーン
• OpenUP
• ・・・
7つのプロセス
60のプラクティス
3章
DADに息づくプラクティス
JIT
3C Rythm
XP
SCRUM
Agile
Modeling
Agile Data
Lean
IBM
Practice
OpenUP
DADに備えられている戦略
• 要求モデリングの手段– ビジネスプロセス図– ドメインモデル– エピック– 機能一覧– フローチャート– マインドマップ– UMLアクティビティ図– ユースケース仕様書– ユーザーストーリー– バリュー・ストリーム・マップ– ・・・
• プロジェクト予算確保戦略– 金額固定(範囲あり)– 金額固定(範囲なし)– 段階的予算確保– タイム&マテリアル
37の戦略比較表
195個の戦略
全体
戦略比較表
DADに備えられている戦略
JIT
3C Rythm
Case Study:方向付けフェーズ
1. アサインと環境整備
2. 開発構想とユーザーストーリー、フィーチャーリストを作成
3. マインドマップで問題識別、利害関係者の洗い出し
4. ふせんを使ったニーズ識別セッション
5. 開発構想に制約事項、満足条件を追加
6. キーとなる機能のユースケース図を作成
7. ユーザーストーリーの優先順位付きワークアイテムリストを作成
8. 簡単なコンテキストダイアグラムでアーキテクチャー構想
9. リリース計画を立案。ガントチャートを作成
10. 相対ポイントで見積もりを行い、
識別されたリスクをリスクリストに記入
11. スポンサーとエンタープライズアーキテクトから、
マイルストーンレビューを受け、方向づけフェーズが完了12章
その他のDADの特徴
• ピープルファースト(People First)
• 学習指向 (Learning Oriented)
• アジャイル (Agile)
• ハイブリッド (Hybrid)
• ソリューションにフォーカスを合わせる (IT Solution Focused)
• ゴール駆動 (Goal-driven)
• デリバリーにフォーカスを合わせる (Delivery focused)
• エンタープライズ対応 (Enterprise Aware)
• リスクと価値駆動 (Risk and Value driven)
• スケーラブル (Scalable)1章
DAD本の構造
7章8章
9章
10章
14章
15章
16章 18章
1,2,3章:概要と基礎
4,5章:役割と組織
11章:作業環境
12,17,19章:ケーススタディ
20章:ガバナンス
21章:現実へ向かう前に
6章 13章 18章
「知の道具箱」
DAD =
Process Decision
Framework
DADを使うべき人
• 提案で厳しく突っ込みを入れられ四苦八苦しているアジャイリスト
• ウォーターフォールから脱却したいが、ギャップが大きすぎると二の足を踏んでいる開発チーム
• ユーザーサイドでアジャイルを実施するためにどう振る舞って良いか悩んでいる人、問題意識のある人(POなど)
DADの学び方
1. スクラムを学ぶ
2. JITの思考と行動を習慣づける
3. DADのフェーズを学ぶ
4. 3Cリズムで生活する
5. DADのライフサイクルを学ぶ
6. 属性の違う人とのコミュニケーション
7. いろいろな道具を手に入れよう
アジャイリストの(現実的な)心得
軸足をJITに。BxUFの誘惑に負けない。
己の力量を知ること。
こだわりを持ちすぎない。
アジャイルを言い訳にしない。
• アジャイルで受託は十分可能。そのためのDAD。
関係者みんなに嬉しい驚きを届けるために。
Got Discipline?
disciplinedagiledelivery.jp