Upgrade to Pro — share decks privately, control downloads, hide ads and more …

モデリング X アジャイル

Yasushi Hagai
March 24, 2013
36

モデリング X アジャイル

Agile Japan 2013 サテライト <名古屋>

Yasushi Hagai

March 24, 2013
Tweet

Transcript

  1. AGENDA • なぜモデリング X アジャイル? • 何をどうモデリングする? • アジャイルモデリング –

    導入 – アジャイルモデリングの原則 – アジャイルモデリングのプラクティス – カオスで秩序なアジャイルモデリング • モデルでコミュニケーション • インクリメンタルにモデリング • やってみよう ! • まとめ 4 Agile Japan 2013 Satellite Nagoya
  2. アジャイルっていうと • 人間系 – SCRUM – 自己組織化されたチーム – プロジェクトファシリテーション •

    実装に近いところ – CI (Continuous Integration) – ビルド、テストの自動化 – TDD (Test Driven Development) – リファクタリング Agile Japan 2013 Satellite Nagoya 6 こんな話が主に取り上げられている
  3. でも我々は“分析・設計”をする • 顧客のビジネス価値がゴールなんだから – 対象のビジネスを理解する • それを可視化する – 何を作るかを考える •

    どう考えてるのかをわかるようにする – どう作るかを考える • どう作ろうとしてるのか(作ったのか)をわかる ようにする という事はいつでも必要で、やっている Agile Japan 2013 Satellite Nagoya 7
  4. これは忘れない • 我々は「モデル開発者」でも「ドキュメント開発者」でもない • 動くソフトウェアを作る為にモデリングするものなり Agile Japan 2013 Satellite Nagoya

    9 アジャイルソフトウェア開発宣言 http://agilemanifesto.org/iso/ja/ プロセスやツールよりも個人と対話を、 包括的なドキュメントよりも動くソフトウェアを、 契約交渉よりも顧客との協調を、 計画に従うことよりも変化への対応を、 価値とする
  5. モデルとは何か? 「ある人にとっての、ある状況、 あるいはある状況についての概念 の、明示的な解釈」 Agile Japan 2013 Satellite Nagoya 11

    『システム仕様の分析学』著者、ブライアン・ウィルソン曰く これを、“図”などを使って表現している
  6. 切り口・目的に合わせた モデル・ダイアグラム • 業務分析だったら – アクティビティ図 – ビジネスユースケース図 • 要求分析だったら

    – SysMLの要求図 – ユースケース図 – ペルソナ – ユーザーストーリー • プログラム設計だったら – クラス図 – シーケンス図 – CRCカード (Class-Responsibility-Collaborator) Agile Japan 2013 Satellite Nagoya 15
  7. たとえばこんな感じ 1. ドメインモデル + ユースケース – 登場する要素をドメインモデルとして書く – ドメインモデルの言葉を使ってユースケース シナリオを書く

    2. 設計クラス + シーケンス – ユースケースシナリオの実現をモデリング – 設計クラスとシーケンスは同時進行 Agile Japan 2013 Satellite Nagoya 17
  8. チーム分けと自己紹介 Agile Japan 2013 Satellite Nagoya 19 • チーム内で自己紹介をしてください •

    自分の”ある側面”をクラス図として表現し てみましょう • そしてそのモデル使って自分自身をチー ムのメンバーに説明してください
  9. 自己紹介クラスはこんな感じ • モデルを書く – 5分 • チームメンバーに説明 – 5分 Agile

    Japan 2013 Satellite Nagoya 20 class Package1 ダメなおっさん - カメラさんたち - レコードさんたち + 山に登る() :void + 自転車に乗る() :void + 音楽を聴く() :void + 写真を撮る() :void
  10. AMの3つの目的 1. 軽量で効果的なモデリングを行うためのプラ クティスを定義し、それらを裏付ける原則や価 値を定義し、示す 。 2. eXtreme Programming, SCRUMのようなア

    ジャイルなアプローチを適用したプロジェクト でモデリング手法をどのように使うかを探求す る。 3. ラショナル統一プロセス(RUP)やエンタープラ イズ統一プロセス(EUP)のようにきっちりと定 められたプロセスでモデリングをよりよく行う 方法を探究する。 Agile Japan 2013 Satellite Nagoya 23
  11. アジャイルなモデルとは 1. 目的を満たしている 2. 理解できる 3. そこそこ正確である 4. そこそこ一貫性がある 5.

    そこそこ詳しい 6. 労力を上回るプラスの価値をもたらす 7. 出来るだけ簡潔になっている Agile Japan 2013 Satellite Nagoya 24 アジャイルなモデルは、
  12. アジャイルモデリングとは 何であり何でないか 1. 姿勢であり、きっちりと定められたプロセスにあらず。 2. 既存の方法論を補うものであり、完全な方法論にあらず。 3. 利害関係者の要望を満たすために効果的にチームワークを行う方 法なり。 4.

    効果的であり、効果的になる道なり。 5. 実務に使えるものであり、学術的な理論にあらず。 6. 銀の弾丸にあらず。 7. 平均的な開発者のものなれど、有能な開発者を代替するものにあ らず。 8. 説明資料の否定にあらず。価値あるドキュメントを作ることを推 奨するものなり。 9. CASEツールの否定にあらず。 10. 万人に対するものにあらず。 Agile Japan 2013 Satellite Nagoya 26 AMは、
  13. 追加原則 1. 見栄えより中身 2. 誰しも他人から学べる 3. モデルを知ろう 4. 実情に合わせよう 5.

    オープンで正直なコミュニケーション 6. 直感に従って開発しよう 7. 道具を知ろう Agile Japan 2013 Satellite Nagoya 33
  14. 基本プラクティス #1 • 反復的でインクリメンタルなモデリングの為の プラクティス 1.適切な成果物を使おう 2.複数のモデルを平行して使おう 3.他の成果物に移ろう 4.少しずつモデリングしよう •

    効果的なチームワークの為のプラクティス 5.他の人と一緒にモデリングしよう 6.利害関係者の積極的な参加 7.共同所有 8.モデルを公開しよう Agile Japan 2013 Satellite Nagoya 36
  15. 追加プラクティス • 生産性を向上させるプラクティス 1. モデリング標準を適用しよう 2. パターンを控えめに使おう 3. 既存の資源を再利用しよう •

    アジャイルなドキュメントに関するプラクティス 4. 一時的なモデルは捨てよう 5. 取り決めモデルはきちんと定義しよう 6. 困ったときだけ更新しよう • 動機に関するプラクティス 7. 理解するためにモデリングしよう 8. 話すためにモデリングしよう Agile Japan 2013 Satellite Nagoya 38
  16. 軽量であること・コミュニケー ション重視のプラクティス • モデルが重荷になってはいけない – 必要な物を必要な分だけ • 生産的なコミュニケーション – いつでも見られる・誰でも触れる

    – 共同作業によって共通理解が得られる – そこに利害関係者も巻き込めば合意形成も • 実装して確認 – そのモデルは絵に描いたモチかもしれない Agile Japan 2013 Satellite Nagoya 39
  17. どうやってコミュニケーション? 1. 複数人でモデリングする – 話し合いながら決めてゆく – 1人でモデリングしたとしても、すぐに (溜めこまずに)他の人の意見を求める 2. 利害関係者の(モデリングへの)参加

    – 業務知識・見解の共有 3. 共同所有 – チームの誰でも変更可能 4. モデルを公開 – 壁などに掲示していつでも見られるように Agile Japan 2013 Satellite Nagoya 44
  18. 円滑なコミュニケーションの為に • UML等の標準の採用 – 素早い共通の理解の為の共通の記法 • 粒度・抽象度の決めごと – ユースケース、ユーザーストーリーなどは、形を合わせても中 身の粒度・抽象度は定まらない

    • 生きた言葉で – 関係者間で、同じ意味で理解される言葉(ユビキタス言語) • 道具を選ぶ – 意見を出し合うのには、ホワイトボードどペン、壁と付箋紙な どが大活躍する Agile Japan 2013 Satellite Nagoya 45
  19. Scratch • ScratchはMITで開発された小学生にも使える教 育用のプログラミング環境です。 – スプライトと呼ばれる絵に動きを与えることができ ます。 – クラスの継承はできません。 –

    スプライトはインスタンスなので、同じ型の別のイ ンスタンスは作れません。 – コピーは出来ます。 – ブラウザ上で動きます。 – http://scratch.mit.edu Agile Japan 2013 Satellite Nagoya 52
  20. モデリング+実装 #3 • カップのコーヒーを2種類扱う自動販売機 – コーヒーAのお値段は100円 – コーヒーBのお値段は120円 – 100円玉と500円玉を受け付けます

    – おつりが出てきます – 砂糖の量が選べます(多め・普通・少なめ・なし) – ミルクの量も選べます(多め・普通・少なめ・なし) – 注文を受け付けたら、豆を挽いて抽出します – 待ってる間に音楽が鳴るといいですね – カップを取り出さないと次の購入はできません Agile Japan 2013 Satellite Nagoya 57
  21. 本日やってみたのはこんな事 • 少しずつ・インクリメンタルに • 簡単な道具を使って • シンプルに • 身軽に •

    モデルを使ったコミュニケーション 共同作業による共通理解 Agile Japan 2013 Satellite Nagoya 59
  22. 書籍紹介 #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
  23. 書籍紹介 #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