SlideShare ist ein Scribd-Unternehmen logo
1 von 62
Downloaden Sie, um offline zu lesen
モデリング X アジャイル
2013/5/24 Yasushi Hagai
名古屋アジャイル勉強会
Agile Japan 2013 サテライト <名古屋>
自己紹介
羽飼康(ハガイヤスシ)
フリーランスのITエンジニア
名古屋アジャイル勉強会スタッフ
 認定スクラムマスター
 @onestepbeyond_y
Agile Japan 2013 Satellite Nagoya 2
ATTENTION
本資料は後日公開致します
資料の内容について全ての
メモを取る必要はありません
Agile Japan 2013 Satellite Nagoya 3
AGENDA
• なぜモデリング X アジャイル?
• 何をどうモデリングする?
• アジャイルモデリング
– 導入
– アジャイルモデリングの原則
– アジャイルモデリングのプラクティス
– カオスで秩序なアジャイルモデリング
• モデルでコミュニケーション
• インクリメンタルにモデリング
• やってみよう !
• まとめ
4Agile Japan 2013 Satellite Nagoya
なぜモデリング X アジャイル?
Agile Japan 2013 Satellite Nagoya 5
アジャイルっていうと
• 人間系
– SCRUM
– 自己組織化されたチーム
– プロジェクトファシリテーション
• 実装に近いところ
– CI (Continuous Integration)
– ビルド、テストの自動化
– TDD (Test Driven Development)
– リファクタリング
Agile Japan 2013 Satellite Nagoya 6
こんな話が主に取り上げられている
でも我々は“分析・設計”をする
• 顧客のビジネス価値がゴールなんだから
– 対象のビジネスを理解する
• それを可視化する
– 何を作るかを考える
• どう考えてるのかをわかるようにする
– どう作るかを考える
• どう作ろうとしてるのか(作ったのか)をわかる
ようにする
という事はいつでも必要で、やっている
Agile Japan 2013 Satellite Nagoya 7
そこで “モデリング X アジャイル”
• 理解する・思考する
• 表現する・意思疎通する
これらをモデルを使って、
サクっと軽量かつ効果的にやる!
という事にフォーカスしてみました
Agile Japan 2013 Satellite Nagoya 8
これは忘れない
• 我々は「モデル開発者」でも「ドキュメント開発者」でもない
• 動くソフトウェアを作る為にモデリングするものなり
Agile Japan 2013 Satellite Nagoya 9
アジャイルソフトウェア開発宣言
http://agilemanifesto.org/iso/ja/
プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、
価値とする
何をどうモデリングする?
Agile Japan 2013 Satellite Nagoya 10
モデルとは何か?
「ある人にとっての、ある状況、
あるいはある状況についての概念
の、明示的な解釈」
Agile Japan 2013 Satellite Nagoya 11
『システム仕様の分析学』著者、ブライアン・ウィルソン曰く
これを、“図”などを使って表現している
もうちょっとわかりやすく
• 仕組みや原理を理解したり説明した
りするために、それに関わる最小の
要素と、それらがお互いにどう関わ
るかを記述する
- UMLモデリングの本質 第2版 –
Agile Japan 2013 Satellite Nagoya 12
モデリングの目的
• 開発する内容を理解するため
– 自分が何を作るかという事を考える
• 開発チーム内と利害関係者の意思疎通の
ため
– チーム内外との“コミュニケーション”
Agile Japan 2013 Satellite Nagoya 13
モデリングの手法
• 同じ切り口、同じ目的のモデルが書く人
によって表現がバラバラなのはとても不
便
• そこでUML(Unified Modeling
Language)等の手法を使う
Agile Japan 2013 Satellite Nagoya 14
切り口・目的に合わせた
モデル・ダイアグラム
• 業務分析だったら
– アクティビティ図
– ビジネスユースケース図
• 要求分析だったら
– SysMLの要求図
– ユースケース図
– ペルソナ
– ユーザーストーリー
• プログラム設計だったら
– クラス図
– シーケンス図
– CRCカード (Class-Responsibility-Collaborator)
Agile Japan 2013 Satellite Nagoya 15
手法・仕様というのはいつもfat
• UMLには13種類のダイアグラム
• SysMLなんてのも出てきたり
Agile Japan 2013 Satellite Nagoya 16
必要な物を限定的に使えばいい
たとえばこんな感じ
1. ドメインモデル + ユースケース
– 登場する要素をドメインモデルとして書く
– ドメインモデルの言葉を使ってユースケース
シナリオを書く
2. 設計クラス + シーケンス
– ユースケースシナリオの実現をモデリング
– 設計クラスとシーケンスは同時進行
Agile Japan 2013 Satellite Nagoya 17
今日はモデリング x アジャイル
• インクリメンタルにモデリングする
• そして実装する
• モデルによるコミュニケーション
Agile Japan 2013 Satellite Nagoya 18
というのを体感してみましょう!
チーム分けと自己紹介
Agile Japan 2013 Satellite Nagoya 19
• チーム内で自己紹介をしてください
• 自分の”ある側面”をクラス図として表現し
てみましょう
• そしてそのモデル使って自分自身をチー
ムのメンバーに説明してください
自己紹介クラスはこんな感じ
• モデルを書く – 5分
• チームメンバーに説明 – 5分
Agile Japan 2013 Satellite Nagoya 20
class Package1
ダメなおっさん
- カメラさんたち
- レコードさんたち
+ 山に登る() :void
+ 自転車に乗る() :void
+ 音楽を聴く() :void
+ 写真を撮る() :void
アジャイルモデリング - 導入 -
Agile Japan 2013 Satellite Nagoya 21
アジャイルモデリングとは
• アジャイルモデリング(AM)は、ソフトウェ
アシステムの効果的なモデリングとドキュメ
ントのための、
カオス秩序的(chaordic)な
プラクティスに基づく方法論
• AMは、感覚的なものでなく、また、ガチガ
チの規則でもない
• AMは、科学ではなく技能
• Scott W. Ambler 2003
Agile Japan 2013 Satellite Nagoya 22
AMの3つの目的
1. 軽量で効果的なモデリングを行うためのプラ
クティスを定義し、それらを裏付ける原則や価
値を定義し、示す 。
2. eXtreme Programming, SCRUMのようなア
ジャイルなアプローチを適用したプロジェクト
でモデリング手法をどのように使うかを探求す
る。
3. ラショナル統一プロセス(RUP)やエンタープラ
イズ統一プロセス(EUP)のようにきっちりと定
められたプロセスでモデリングをよりよく行う
方法を探究する。
Agile Japan 2013 Satellite Nagoya 23
アジャイルなモデルとは
1. 目的を満たしている
2. 理解できる
3. そこそこ正確である
4. そこそこ一貫性がある
5. そこそこ詳しい
6. 労力を上回るプラスの価値をもたらす
7. 出来るだけ簡潔になっている
Agile Japan 2013 Satellite Nagoya 24
アジャイルなモデルは、
アジャイルなモデルとは
“かろうじて役に立つモデル”
Agile Japan 2013 Satellite Nagoya 25
アジャイルモデリングとは
何であり何でないか
1. 姿勢であり、きっちりと定められたプロセスにあらず。
2. 既存の方法論を補うものであり、完全な方法論にあらず。
3. 利害関係者の要望を満たすために効果的にチームワークを行う方
法なり。
4. 効果的であり、効果的になる道なり。
5. 実務に使えるものであり、学術的な理論にあらず。
6. 銀の弾丸にあらず。
7. 平均的な開発者のものなれど、有能な開発者を代替するものにあ
らず。
8. 説明資料の否定にあらず。価値あるドキュメントを作ることを推
奨するものなり。
9. CASEツールの否定にあらず。
10. 万人に対するものにあらず。
Agile Japan 2013 Satellite Nagoya 26
AMは、
アジャイルモデリングの価値
Agile Japan 2013 Satellite Nagoya 27
アジャイルモデリングの価値とは
1.コミュニケーション
2.簡潔さ
3.フィードバック
4.勇気
5.謙虚さ
Agile Japan 2013 Satellite Nagoya 28
eXtreme Programmingの価値に
“謙虚さ”を加えたもの
• この頃(2003)はXPの5つ目、”尊敬“はま
だない
• AMでは“謙虚さ (Humility) ”を加えた
• その後XPでは”尊敬(Respect)”が加わっ
た
Agile Japan 2013 Satellite Nagoya 29
アジャイルモデリングの原則
Agile Japan 2013 Satellite Nagoya 30
基本原則 #1
1.ソフトウェアが第1のゴール
2.次への備えが第2のゴール
3.身軽な旅
4.簡潔さを心がけよう
5.変化を受け入れよう
6.少しずつ変更する
Agile Japan 2013 Satellite Nagoya 31
基本原則 #2
7.目的を持ってモデリングしよう
8.複数のモデル
9.質の高い仕事をしよう
10.素早いフィードバック
11.利害関係者の投資を最大限に生かそう
Agile Japan 2013 Satellite Nagoya 32
追加原則
1. 見栄えより中身
2. 誰しも他人から学べる
3. モデルを知ろう
4. 実情に合わせよう
5. オープンで正直なコミュニケーション
6. 直感に従って開発しよう
7. 道具を知ろう
Agile Japan 2013 Satellite Nagoya 33
AMは“姿勢”
• これらの原則からわかるように、プロセ
ス・成果物の定義につながる物はない
• モデリング手法そのものではなく、アジ
ャイルにモデリングするための原則
Agile Japan 2013 Satellite Nagoya 34
アジャイルモデリングの
プラクティス
Agile Japan 2013 Satellite Nagoya 35
基本プラクティス #1
• 反復的でインクリメンタルなモデリングの為の
プラクティス
1.適切な成果物を使おう
2.複数のモデルを平行して使おう
3.他の成果物に移ろう
4.少しずつモデリングしよう
• 効果的なチームワークの為のプラクティス
5.他の人と一緒にモデリングしよう
6.利害関係者の積極的な参加
7.共同所有
8.モデルを公開しよう
Agile Japan 2013 Satellite Nagoya 36
基本プラクティス #2
• 簡潔さを可能にするプラクティス
9.中身はシンプルに作ろう
10.モデルはシンプルに書こう
11.最も簡単な道具を使おう
• モデルを検証するためのプラクティス
12.テストできるか考えよう
13.コードで確かめよう
Agile Japan 2013 Satellite Nagoya 37
追加プラクティス
• 生産性を向上させるプラクティス
1. モデリング標準を適用しよう
2. パターンを控えめに使おう
3. 既存の資源を再利用しよう
• アジャイルなドキュメントに関するプラクティス
4. 一時的なモデルは捨てよう
5. 取り決めモデルはきちんと定義しよう
6. 困ったときだけ更新しよう
• 動機に関するプラクティス
7. 理解するためにモデリングしよう
8. 話すためにモデリングしよう
Agile Japan 2013 Satellite Nagoya 38
軽量であること・コミュニケー
ション重視のプラクティス
• モデルが重荷になってはいけない
– 必要な物を必要な分だけ
• 生産的なコミュニケーション
– いつでも見られる・誰でも触れる
– 共同作業によって共通理解が得られる
– そこに利害関係者も巻き込めば合意形成も
• 実装して確認
– そのモデルは絵に描いたモチかもしれない
Agile Japan 2013 Satellite Nagoya 39
カオスで秩序な
アジャイルモデリング
Agile Japan 2013 Satellite Nagoya 40
AMの価値・原則・プラクティス
• 価値は理念
• 原則は指針
• プラクティスは価値・原則から導
き出されたAMの核心となる手法
Agile Japan 2013 Satellite Nagoya 41
AMはカオス秩序的な
プラクティスベースの方法論
• AMは一見カオスのように無秩序
• しかし、 AMは共通の価値・原則を指針として協調する
人々が、指図ではなく舵取りをする為のものであり、効
果的で有効な作業習慣を重視するというものである →
秩序
• 決めごととしては緩い、が「なにやって
るかわかんない」にはならない(そうな
ってたらAMではない)
Agile Japan 2013 Satellite Nagoya 42
モデルでコミュニケーション
Agile Japan 2013 Satellite Nagoya 43
どうやってコミュニケーション?
1. 複数人でモデリングする
– 話し合いながら決めてゆく
– 1人でモデリングしたとしても、すぐに
(溜めこまずに)他の人の意見を求める
2. 利害関係者の(モデリングへの)参加
– 業務知識・見解の共有
3. 共同所有
– チームの誰でも変更可能
4. モデルを公開
– 壁などに掲示していつでも見られるように
Agile Japan 2013 Satellite Nagoya 44
円滑なコミュニケーションの為に
• UML等の標準の採用
– 素早い共通の理解の為の共通の記法
• 粒度・抽象度の決めごと
– ユースケース、ユーザーストーリーなどは、形を合わせても中
身の粒度・抽象度は定まらない
• 生きた言葉で
– 関係者間で、同じ意味で理解される言葉(ユビキタス言語)
• 道具を選ぶ
– 意見を出し合うのには、ホワイトボードどペン、壁と付箋紙な
どが大活躍する
Agile Japan 2013 Satellite Nagoya 45
インクリメンタルにモデリング
Agile Japan 2013 Satellite Nagoya 46
広い世界は今見なくていい
• モデリングの対象を不必要に広げない
– 例えば「書籍を検索」がモデリングする対象
なのであれば、ひとまずそれだけ考える
• 「書籍」という存在を考えたらどんどん世界は広
がってしまうかもしれない
• 後に別の要求から「書籍」を拡張する必要があれ
ばその時すればよい
Agile Japan 2013 Satellite Nagoya 47
動くソフトウェアを作るためのモデル
• モデル開発じゃない
– モデルは実装するためにある
– 実装されない(できない)モデルに価
値なし
– 『モデリング→ 実装』を繰り返すべし
Agile Japan 2013 Satellite Nagoya 48
やってみよう
Agile Japan 2013 Satellite Nagoya 49
実際にやってみましょう
• いくつかのお題を実際にモデリングして
実装してみましょう
– モデリングは手書きで行います
– 実装はScratchを使います
– ポモドーロテクニックを使って集中してやっ
てみましょう
Agile Japan 2013 Satellite Nagoya 50
実際にやってみましょう #1
• モデルを使ってコミュニケーション
• インクリメンタルに、モデリング → 実装
この2点を意識してやってみましょう!
Agile Japan 2013 Satellite Nagoya 51
Scratch
• ScratchはMITで開発された小学生にも使える教
育用のプログラミング環境です。
– スプライトと呼ばれる絵に動きを与えることができ
ます。
– クラスの継承はできません。
– スプライトはインスタンスなので、同じ型の別のイ
ンスタンスは作れません。
– コピーは出来ます。
– ブラウザ上で動きます。
– http://scratch.mit.edu
Agile Japan 2013 Satellite Nagoya 52
ポモドーロテクニック
25分集中したら5分休む
Agile Japan 2013 Satellite Nagoya 53
本日のお題
• 飲料の自動販売機
をモデリング、実装します
• 簡単な仕様からだんだん複雑な仕様にな
っていきます
Agile Japan 2013 Satellite Nagoya 54
モデリング+実装 #1
• ペットボトルの飲料を1種類扱う自動販売機
– 飲料のお値段は100円
– 100円玉しか受け付けません
– 100円を入れてボタンを押したら飲料が出てきます
– 上記以外を考慮しなくていいです(在庫管理とかは
考えなくていい)
Agile Japan 2013 Satellite Nagoya 55
モデリング+実装 #2
• ペットボトルの飲料を2種類扱う自動販売機
– 飲料Aのお値段は100円
– 飲料Bのお値段は120円
– 100円玉と500円玉を受け付けます
– もちろんおつりが出てきます
– 連続購入はありません
Agile Japan 2013 Satellite Nagoya 56
モデリング+実装 #3
• カップのコーヒーを2種類扱う自動販売機
– コーヒーAのお値段は100円
– コーヒーBのお値段は120円
– 100円玉と500円玉を受け付けます
– おつりが出てきます
– 砂糖の量が選べます(多め・普通・少なめ・なし)
– ミルクの量も選べます(多め・普通・少なめ・なし)
– 注文を受け付けたら、豆を挽いて抽出します
– 待ってる間に音楽が鳴るといいですね
– カップを取り出さないと次の購入はできません
Agile Japan 2013 Satellite Nagoya 57
まとめ
Agile Japan 2013 Satellite Nagoya 58
本日やってみたのはこんな事
• 少しずつ・インクリメンタルに
• 簡単な道具を使って
• シンプルに
• 身軽に
• モデルを使ったコミュニケーション
共同作業による共通理解
Agile Japan 2013 Satellite Nagoya 59
書籍紹介 #1
• UMLモデリング入門 本質をとらえるシステム思考とモ
デリング心理学
– http://amzn.to/12Gud8k
• UMLモデリングの本質 第2版 良いモデルを作るための
知識と実践
– http://amzn.to/14nDbrC
• ユースケース実践ガイド―効果的なユースケースの書き
方
– http://amzn.to/10PHF6K
• ユースケース駆動開発実践ガイド
– http://amzn.to/19UKKqd
Agile Japan 2013 Satellite Nagoya 60
書籍紹介 #2
• エリック・エヴァンスのドメイン駆動設計
– http://amzn.to/14nDOBz
• オブジェクト開発の神髄~UML 2.0を使ったアジャイル
モデル駆動開発のすべて
– http://amzn.to/18YeG7i
• アジャイルモデリング―XPと統一プロセスを補完する
プラクティス
– http://amzn.to/14nFCdA
• アジャイルな時間管理術 ポモドーロテクニック入門
– http://amzn.to/165omOD
Agile Japan 2013 Satellite Nagoya 61
ありがとうございました
Agile Japan 2013 Satellite Nagoya 62

Weitere ähnliche Inhalte

Ähnlich wie Agile japan 2013 サテライト<名古屋> モデリング x アジャイル

Eclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめにEclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめに
Akira Tanaka
 

Ähnlich wie Agile japan 2013 サテライト<名古屋> モデリング x アジャイル (20)

Modeling Workshop
Modeling WorkshopModeling Workshop
Modeling Workshop
 
アジャイルと言わないエンタープライズアジャイル導入 - Agile Japan 2016
アジャイルと言わないエンタープライズアジャイル導入 - Agile Japan 2016アジャイルと言わないエンタープライズアジャイル導入 - Agile Japan 2016
アジャイルと言わないエンタープライズアジャイル導入 - Agile Japan 2016
 
第1回 モデリング勉強会
第1回 モデリング勉強会第1回 モデリング勉強会
第1回 モデリング勉強会
 
アジャイルを学ぼう〜紹介編〜
アジャイルを学ぼう〜紹介編〜アジャイルを学ぼう〜紹介編〜
アジャイルを学ぼう〜紹介編〜
 
モデリングの神髄
モデリングの神髄モデリングの神髄
モデリングの神髄
 
Scrumの根っこ
Scrumの根っこScrumの根っこ
Scrumの根っこ
 
アジャイルにモデリングは必要か
アジャイルにモデリングは必要かアジャイルにモデリングは必要か
アジャイルにモデリングは必要か
 
Agile Tech EXPO Community Introduction
Agile Tech EXPO Community IntroductionAgile Tech EXPO Community Introduction
Agile Tech EXPO Community Introduction
 
アジャイルの今とこれから-Agile conference2012参加報告-技術動向編
アジャイルの今とこれから-Agile conference2012参加報告-技術動向編アジャイルの今とこれから-Agile conference2012参加報告-技術動向編
アジャイルの今とこれから-Agile conference2012参加報告-技術動向編
 
はじめてのスクラム開発
はじめてのスクラム開発はじめてのスクラム開発
はじめてのスクラム開発
 
アジャイルマニフェストから見るインセプションデッキ
アジャイルマニフェストから見るインセプションデッキアジャイルマニフェストから見るインセプションデッキ
アジャイルマニフェストから見るインセプションデッキ
 
学び方を学ぶことを学ぶ
学び方を学ぶことを学ぶ学び方を学ぶことを学ぶ
学び方を学ぶことを学ぶ
 
シカケ~行動したくなるデザイン~仕掛学(Shikakelogy)の概要と事例
シカケ~行動したくなるデザイン~仕掛学(Shikakelogy)の概要と事例シカケ~行動したくなるデザイン~仕掛学(Shikakelogy)の概要と事例
シカケ~行動したくなるデザイン~仕掛学(Shikakelogy)の概要と事例
 
No Managers, Yes Agile. ~アジャイルなプロジェクト管理とは~
No Managers, Yes Agile. ~アジャイルなプロジェクト管理とは~No Managers, Yes Agile. ~アジャイルなプロジェクト管理とは~
No Managers, Yes Agile. ~アジャイルなプロジェクト管理とは~
 
ぐるぐるDDDは何を目指しているのか
ぐるぐるDDDは何を目指しているのかぐるぐるDDDは何を目指しているのか
ぐるぐるDDDは何を目指しているのか
 
Agile-development-course-advanced-1-2
Agile-development-course-advanced-1-2Agile-development-course-advanced-1-2
Agile-development-course-advanced-1-2
 
15 c5 dad
15 c5 dad15 c5 dad
15 c5 dad
 
Pattern mining-scrum gatheringtokyo20130115
Pattern mining-scrum gatheringtokyo20130115Pattern mining-scrum gatheringtokyo20130115
Pattern mining-scrum gatheringtokyo20130115
 
Eclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめにEclipse modeling 勉強会 はじめに
Eclipse modeling 勉強会 はじめに
 
To be sn agile enterprise
To be sn agile enterpriseTo be sn agile enterprise
To be sn agile enterprise
 

Agile japan 2013 サテライト<名古屋> モデリング x アジャイル