Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

モデリングもしないでXPとは何事だ 20150912

3,657 views

Published on

2015年 XP祭り (2015.9.12)
B-7 モデリングもしないでXPとは何事だ

Published in: Engineering
  • Follow the link, new dating source: ❤❤❤ http://bit.ly/2F4cEJi ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ♥♥♥ http://bit.ly/2F4cEJi ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

モデリングもしないでXPとは何事だ 20150912

  1. 1. XP祭り2015 2015/9/12
  2. 2. モデル書いていますか?
  3. 3. XP実践していますか? Amazon:http://www.amazon.co.jp/dp/4274217620/
  4. 4. 今日のキーワード 変更のコストを一定に保つ 従来開発 XP開発 時間 コスト 書籍:エクストリーム・プログラミング ソフトウェア開発の究極の手法 P.23 図3 変更のコストは時間とともに劇的に上がらないことがある
  5. 5. 決定を遅らせる ❝プロセス内で大きな決定を することを可能な限り遅らせ、 決定が正しくなるまで待つだろう❞ 書籍:エクストリーム・プログラミング ソフトウェア開発の究極の手法 第5章 変更のコストより
  6. 6. でも、 XPとモデリングって 関係あるっけ・・・ 疑問
  7. 7. XPとモデリング アジャイルモデリング by Scott Ambler ❝モデリングはXPの1つの要素である❞ ❝リファクタリングとテストファースト開 発というXPのプラクティスは、一般的に 従来型のモデリングプロセスに結び付けら れている「きれいな設計を促す」「コード を書く前に設計をよく考える」という2つ の重要な目的を達成するために役に立ちま す❞ アジャイルモデリング XPと統一プロセスを補完するプラクティス 第16章、第17章 http://www.amazon.co.jp/dp/4798102636
  8. 8. モデリングとXPはとても相性が良いよ!
  9. 9. 発表者紹介 原田 巌 @iwaoRd 山田 悦朗 @e_mumble 竹林 崇 @changeworlds
  10. 10. 今日話すこと 1. モデリングを通して学んだこと (モデリングもしないでアジャイルとは何事だ!?の復習) 2. アジャイル開発における更なる問題 – 革命的開発のダメージ 3. モデリングワークショップ×2 – 簡単モデリング体験 4. まとめ
  11. 11. 【問題1】 みんな バ ラバラ
  12. 12. モデルって? • プロジェクトで働くチームメンバ全員が 必要とする文書 この役割を持っているべきだと思う。 そしてモデルを生み出す活動がモデリング。
  13. 13. 重要なのは? 1)全体感、目的、知識の共有 ビッグピクチャとして全体を捉えること。 システムの背骨を築くこと。 そしてなによりユビキタス言語を築くこと。 2)実装のための設計をすること 素早くより良い設計を手に入れること。 なにより良いコードを書き上げること。
  14. 14. 全体感≒共通認識
  15. 15. と 一貫性のある実装をするために モデリングをする必要がある! 分析 設計 画像引用:Wikipedia 氷山の一角 http://ja.wikipedia.org/wiki/ファイル:Iceberg.jpg
  16. 16. 分析/設計すること 問題を明らかにして、解決の仕組みを作る そのために 相手や自分の頭の中を形にする、 言語化する
  17. 17. 現場でモデリングしてみる ホワイトボードの前に ペンを持って立つ!
  18. 18. デザイン問答 すべてのモノの形や仕組みには理由がある 画像引用:デザイン問答 http://www.nhk.or.jp/design-ah/design-mondou/
  19. 19. 【問題2】 • 「それって適切なの?」
  20. 20. 現場での話 私「シナリオが○○だからこのモデルの 認識です。次にあのケースですが、 客「あの・・・」 私「はい?」 客「そのモデルの正しさってどのよう に検証されるのですか?」
  21. 21. アジャイルな設計方法 作るモノをいろいろな視点で見る大切さ モデラーとプログラマの視点でシステムを見ること
  22. 22. 重要なのは? 1)全体感、目的、知識の共有 シナリオをベースにユーザ価値に着目したテストを 実施すること。このテストは自動的に繰り返して価 値提供を保証すること。 2)実装のための設計をすること モデリングとTDDで設計をスパイラルアップさせて いくこと。 分析 論理設計 コード テスト 検証 書籍:エクストリーム・プログラミング 第2版 第13章 テスト:早めに、こまめに、自働化 図17 コードとテストの順番はどちらでも構わない
  23. 23. 学びのフィードバックループ
  24. 24. 小さくそして速く 1. シナリオを探索する 2. モデルを小さく作る 3. モデルをコードにする 4. 動くコードからフィードバックを得て、少しずつモデ ルも成長させていく 5. 回転を小さくイテレーティブに提供することで少しず つ学んでいける 書籍:IMPACT MAPPING P28-29 反復デリバリによる改良
  25. 25. しかし発生する新たな問題
  26. 26. 【問題3】 • 「YAGNI=部分最適」の誤った思い込み によって起こる ちゃぶ台返し!
  27. 27. 現場で行われる会話 • 「え?言ってなかったっけ?」 – 優先度の低かったストーリーへの対処時 – 言われたままに表面的に対応時
  28. 28. それっていいの? • ALL RED 行われるScrap& Build 作り直してて良いの? 迷走した結果よい物が組み上 がるの? https://ja.wikipedia.org/wiki/モナ・リザ
  29. 29. ちゃんと考えないとね
  30. 30. お題 「信号機」をモデリングしましょう ワークショップ その1
  31. 31. 感想など
  32. 32. 言われたママじゃダメなんだ • ユーザーの言葉はインスタンスレベル – 相当のドメイン知識がある人に出会えなけれ ば“良い”モデルは完成しない • やりがちなのは解決策のモデリング – 作ってみたけど「これってどうなの?」 – やがて訪れる気付きによる設計変更
  33. 33. 目的と解決策 • 目的と解決策を分けて考える –トップダウンアプローチ ○ ユーザのシステムへの要求から考える ○ 目的がはっきりすると解決策も出しやすい ✕ ただ目的は最初から分かる訳ではない –ボトムアップアプローチ ○ 要素間の性質から上位概念を探す ○ 必要な要素は簡単に集まる ✕ 上位概念まで昇華することは難しい
  34. 34. 視座・視点・視野 1. 視座:モデルをどの立場から見るか 2. 視点:モデルをどのように見るか 3. 視野:モデルに表現する範囲はどこまでか 視点 視野 視座 視座
  35. 35. 進め方 例 ? システムに対する ユーザの要求を考える ユーザ 目的 目的からモデリングする 対象の知識をまとめる
  36. 36. お題 「信号機」をモデリングしましょう ワークショップ その2
  37. 37. 感想など
  38. 38. 解答例 その1 • コンセプト 交差点のスムーズな通行 • ユーザの要求を考える – 交差点とは何か? – 信号機の役割は何か?
  39. 39. 解答例 その2 • 交差点の構造を捕える オブジェクト図
  40. 40. 解答例 その3 • クラス図(抽象化) クラス図
  41. 41. モデリングを実践して気付く点 • 作る対象の目的と価値 – 目的を明らかにする • 特に視座の部分 – モデリングする範囲を合意する • 何にどこまでコストを掛けるのか? – 説明責任は開発者 – 設計のメリットとデメリットを示す – 見る範囲は見れる範囲見ておく
  42. 42. BDUF “論点となるのは、設計をするかどうか ではなく、設計をいつするかである” • LDUF/ENUF 設計の戦略と設計のシンプリシティ – 対象者に適している – 情報が伝わりやすい – うまく分割されている – 最小限である エクストリームプログラミング 第14章 設計:時間の重要性
  43. 43. のレコンギスタ • 思い込みによるアジャイル開発 ⇒黒歴史からの脱却 • 温故知新 – 愚者は経験に学び、賢者は歴史に学ぶ – XPに至る道を学ぶと新しい発見がある • オブジェクト指向 • モデリング • パタン・ランゲージ Modeling MODELING Reconguista in M
  44. 44. XPとモデリング アジャイルモデリング by Scott Ambler ❝モデリングはXPの1つの要素である❞ ❝リファクタリングとテストファースト開 発というXPのプラクティスは、一般的に 従来型のモデリングプロセスに結び付けら れている「きれいな設計を促す」「コード を書く前に設計をよく考える」という2つ の重要な目的を達成するために役に立ちま す❞ アジャイルモデリング XPと統一プロセスを補完するプラクティス 第16章、第17章 http://www.amazon.co.jp/dp/4798102636
  45. 45. 今日の学び • モデリング × XP – モデリングを組み合わせる事でXPを生かすこ とができる • 視座・視点・視野をもって目的を明確に する
  46. 46. ●おわり●

×