Upload
iwao-harada
View
2.989
Download
3
Embed Size (px)
Citation preview
今日のキーワード
変更のコストを一定に保つ
従来開発
XP開発
時間
コスト
書籍:エクストリーム・プログラミング ソフトウェア開発の究極の手法 P.23 図3 変更のコストは時間とともに劇的に上がらないことがある
決定を遅らせる
❝プロセス内で大きな決定を
することを可能な限り遅らせ、
決定が正しくなるまで待つだろう❞
書籍:エクストリーム・プログラミング ソフトウェア開発の究極の手法 第5章 変更のコストより
XPとモデリング
アジャイルモデリング by Scott Ambler ❝モデリングはXPの1つの要素である❞
❝リファクタリングとテストファースト開発というXPのプラクティスは、一般的に従来型のモデリングプロセスに結び付けられている「きれいな設計を促す」「コードを書く前に設計をよく考える」という2つの重要な目的を達成するために役に立ちます❞
アジャイルモデリング XPと統一プロセスを補完するプラクティス 第16章、第17章 http://www.amazon.co.jp/dp/4798102636
今日話すこと
1. モデリングを通して学んだこと (モデリングもしないでアジャイルとは何事だ!?の復習)
2. アジャイル開発における更なる問題 – 革命的開発のダメージ
3. モデリングワークショップ×2 – 簡単モデリング体験
4. まとめ
重要なのは?
1)全体感、目的、知識の共有
ビッグピクチャとして全体を捉えること。
システムの背骨を築くこと。
そしてなによりユビキタス言語を築くこと。
2)実装のための設計をすること
素早くより良い設計を手に入れること。
なにより良いコードを書き上げること。
と
一貫性のある実装をするために
モデリングをする必要がある!
分析 設計
画像引用:Wikipedia 氷山の一角 http://ja.wikipedia.org/wiki/ファイル:Iceberg.jpg
デザイン問答
すべてのモノの形や仕組みには理由がある 画像引用:デザイン問答 http://www.nhk.or.jp/design-ah/design-mondou/
重要なのは?
1)全体感、目的、知識の共有 シナリオをベースにユーザ価値に着目したテストを実施すること。このテストは自動的に繰り返して価値提供を保証すること。 2)実装のための設計をすること モデリングとTDDで設計をスパイラルアップさせていくこと。
分析
論理設計
コード
テスト
検証
書籍:エクストリーム・プログラミング 第2版 第13章 テスト:早めに、こまめに、自働化 図17 コードとテストの順番はどちらでも構わない
小さくそして速く
1. シナリオを探索する
2. モデルを小さく作る
3. モデルをコードにする
4. 動くコードからフィードバックを得て、少しずつモデ
ルも成長させていく
5. 回転を小さくイテレーティブに提供することで少しず
つ学んでいける
書籍:IMPACT MAPPING P28-29 反復デリバリによる改良
それっていいの?
• ALL RED 行われるScrap& Build 作り直してて良いの?
迷走した結果よい物が組み上がるの?
https://ja.wikipedia.org/wiki/モナ・リザ
言われたママじゃダメなんだ
• ユーザーの言葉はインスタンスレベル
–相当のドメイン知識がある人に出会えなければ“良い”モデルは完成しない
• やりがちなのは解決策のモデリング
–作ってみたけど「これってどうなの?」
–やがて訪れる気付きによる設計変更
目的と解決策
• 目的と解決策を分けて考える
–トップダウンアプローチ ○ ユーザのシステムへの要求から考える
○ 目的がはっきりすると解決策も出しやすい
✕ ただ目的は最初から分かる訳ではない
–ボトムアップアプローチ ○ 要素間の性質から上位概念を探す
○ 必要な要素は簡単に集まる
✕ 上位概念まで昇華することは難しい
モデリングを実践して気付く点
• 作る対象の目的と価値
–目的を明らかにする
• 特に視座の部分
–モデリングする範囲を合意する
• 何にどこまでコストを掛けるのか?
– 説明責任は開発者
– 設計のメリットとデメリットを示す
– 見る範囲は見れる範囲見ておく
BDUF “論点となるのは、設計をするかどうかではなく、設計をいつするかである”
• LDUF/ENUF 設計の戦略と設計のシンプリシティ
–対象者に適している
–情報が伝わりやすい
–うまく分割されている
–最小限である エクストリームプログラミング 第14章 設計:時間の重要性
のレコンギスタ
• 思い込みによるアジャイル開発
⇒黒歴史からの脱却
• 温故知新
–愚者は経験に学び、賢者は歴史に学ぶ
– XPに至る道を学ぶと新しい発見がある
• オブジェクト指向
• モデリング
• パタン・ランゲージ
M odeling
MODELING Reconguista in M
XPとモデリング
アジャイルモデリング by Scott Ambler ❝モデリングはXPの1つの要素である❞
❝リファクタリングとテストファースト開発というXPのプラクティスは、一般的に従来型のモデリングプロセスに結び付けられている「きれいな設計を促す」「コードを書く前に設計をよく考える」という2つの重要な目的を達成するために役に立ちます❞
アジャイルモデリング XPと統一プロセスを補完するプラクティス 第16章、第17章 http://www.amazon.co.jp/dp/4798102636