Agile japan 2013 サテライト<名古屋> モデリング x アジャイル
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 1,357 views

Agile Japan 2013 サテライト<名古屋> ワークショップ資料です。

Agile Japan 2013 サテライト<名古屋> ワークショップ資料です。

Statistics

Views

Total Views
1,357
Views on SlideShare
867
Embed Views
490

Actions

Likes
2
Downloads
8
Comments
0

6 Embeds 490

http://www.onestepbeyond.jp 481
http://4446536981205638684_741af3d558d5b73f2c99cd4e687e3fc1451c5a31.blogspot.com 4
https://twitter.com 2
http://feeds.feedburner.com 1
http://geechscamp.lovepop.jp 1
http://www.google.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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