Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
EventStorming SoftwareDesign as a Cooperative Game
Search
98lerr
August 02, 2020
Technology
1
860
EventStorming SoftwareDesign as a Cooperative Game
2020.8.2 にモデリング会で EventStorming のうちの ProcessModeling を行った際、参考にした資料です。
98lerr
August 02, 2020
Tweet
Share
More Decks by 98lerr
See All by 98lerr
AWS Builder Cards Guide ver.2024.03.02
98lerr
3
370
5分でわかった気になるSystemsManager
98lerr
5
1.2k
週次も無理だったチーム内勉強会が 毎日になった話
98lerr
0
1.4k
AWSの基礎を学ぼうで学んだ9種類のDBを勝手にふりかえる
98lerr
2
1.7k
モデリング会イントロダクション
98lerr
0
230
Other Decks in Technology
See All in Technology
JAWS-UG20250116_iOSアプリエンジニアがAWSreInventに行ってきた(真面目編)
totokit4
0
140
カップ麺の待ち時間(3分)でわかるPartyRockアップデート
ryutakondo
0
140
技術に触れたり、顔を出そう
maruto
1
150
20250116_JAWS_Osaka
takuyay0ne
2
200
【NGK2025S】動物園(PINTO_model_zoo)に遊びに行こう
kazuhitotakahashi
0
240
メンバーがオーナーシップを発揮しやすいチームづくり
ham0215
2
140
Evolving Architecture
rainerhahnekamp
3
250
Azureの開発で辛いところ
re3turn
0
240
駆け出しリーダーとしての第一歩〜開発チームとの新しい関わり方〜 / Beginning Journey as Team Leader
kaonavi
0
120
2025年のARグラスの潮流
kotauchisunsun
0
790
いま現場PMのあなたが、 経営と向き合うPMになるために 必要なこと、腹をくくること
hiro93n
9
7.7k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
6
54k
Featured
See All Featured
Facilitating Awesome Meetings
lara
51
6.2k
BBQ
matthewcrist
85
9.4k
Code Reviewing Like a Champion
maltzj
521
39k
Speed Design
sergeychernyshev
25
740
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
500
Scaling GitHub
holman
459
140k
Visualization
eitanlees
146
15k
The Invisible Side of Design
smashingmag
299
50k
How to train your dragon (web standard)
notwaldorf
89
5.8k
Building Applications with DynamoDB
mza
93
6.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Typedesign – Prime Four
hannesfritz
40
2.5k
Transcript
Event Storming software design as a cooperative game Modeling-Kai 2020.08.02
現状と今日進めること • 前回やったこと ◦ Big Picture で全体を視覚化した。 ◦ どんな Command
から どんな Event が発生していくかを書き出した。 • 今回やること ◦ Cooperative Game で間のプロセスのモデリングを行う。
Vision から詳細化、そして戻る https://www.slideshare.net/ziobrando/software-design-as-a-cooperative-game-with-eventstorming/83 今日は ここ
今日の進め方 • Big Picture の Events をもとに、Cooperative Game を進める。 •
プロセスの開始から、順に付箋を並べていく。 ◦ Command → Event の 間を埋めていく。 ◦ カラーベースの文法にしたがって、順番に並べる。 • Rush to the Goal. ◦ まずは 1つのHappy Path を通す。複数Pathを並行して進めない。 ◦ 疑問点、分岐は一旦 HotSpot の付箋を置いて進める。
Cooperative Game を使いたくなる状況 • Process Modeling の実施方法 • Big Picture
を書いてみて ◦ そこで見つかる複雑な問題に、明確な答えはない。 ◦ 背景の違うメンバー全員で合意を取るのは難しい。 • 共通のゴールを持ちたい。
Cooperative Game: Model Sessionのやり方 進め方は 3通り (組み合わせOK) • 頭から :
ユーザからのコマンド、または外部ソースのイベントから ◦ わかりやすい、自然なストーリー ◦ 分岐が一番起きやすい。 Rash to the Goal が大事かも。 • 後ろから : Event + People + Value から戻る ◦ 無駄がない ◦ 経験がいる、結果が明確である必要がある。 • ごちゃごちゃに : イベント周りのブレストから。 ◦ 現状の矛盾を出しやすい、議論がなければスケルトンを作りやすい。 ◦ 議論が暴走しやすい。散らかる。
Rush to the Goal 1. まずは最短ルートのゴールへの道筋を声に出していう。 2. 異論をキャプチャして、ホットスポットとして挙げる。 a. 代替パスをホットスポットとして全て挙げる。
b. とにかく一つゴールに向かう。 c. 終わったら、ホットスポットを一つ 選んで再度行う。 https://www.slideshare.net/ziobrando/software-design-as- a-cooperative-game-with-eventstorming/53 https://www.slideshare.net/ziobrando/software-design-as- a-cooperative-game-with-eventstorming/56
Game Rules: Cooperative Game ルールは4つ。(Software Design まで入ると、5つ目が増える) 1. 全てのプロセスパスが完了する 2.
カラーベースの文法に則っている 3. 全てのステークホルダーが合理的に満足している 4. 全てのホットスポットに対処できている。 5. アグリゲートが一貫している。
プロセスパスが完了するとは? • ビジネスプロセスは、一連ステップだけでは終わらない ◦ 最終的にメインストリームに戻るものもある。 ◦ 異なる終了条件で終了するものもある。 • プロセスのあるべき姿 ◦
開始: 与えられたトリガー(Command あるいは 外部Event) ◦ 終了: Eventと Model の組み合わせ ▪ Event: System Happy (これ以上やることない) ▪ Model: User Happy (終わったと認識できてる) • People + Value で表現 ◦ 「可能な限り幸せ」な状態で終わる。 ▪ 例: キャンセルは全員にとっての完全な幸せでないが、可能な限りの幸せ。
カラーベースの文法 1:やること • 大きくは以下を実施していく。 ◦ 青色(Command)とオレンジ(Event)の間に、ピンク(System) を置く ◦ オレンジ(Event) と
青色 (Command) の間に、薄紫色(Policy) を置く https://www.slideshare.net/ziobrando/software-design-as-a-cooper ative-game-with-eventstorming/40 https://www.slideshare.net/ziobrando/software-design-as-a-cooper ative-game-with-eventstorming/67
カラーベースの文法 2:色見本 https://www.slideshare.net/ziobrando/software-design-as-a-cooperative-game-wit h-eventstorming/40 青: Command オレンジ: Event ピンク: System
薄紫色: Policy 緑色: Read Model 黄色: People 蛍光ピンク: Hot Spot (紫) (45°傾ける) ----------------- 赤/緑の小さい付箋: Values 薄黄色: Aggregate https://baasie.com/2020/07/16/eventstormin g-core-concepts-glossary-and-legend/
カラーベースの文法 3:付箋の補足(Event) [Event] 常に以下4つの状況の結果 トリガー ユーザインタラクション ユーザ起点。Command, System が手前にくる。 複数イベントがトリガーされることもある。
外部システム センサーとか。一定間隔サンプルとかなら、時間トリガー。 時間 分周期のタイマーとか、1日の終わりにとかタイムアウトとか。 特殊ケースがあるなら、ポリシーでカバーする。 カスケード あるイベントが起きると、このイベントもというようなもの。 間にポリシーなどが挟めるかもしれない。
カラーベースの文法 4:付箋の補足(Command, People) [Command] • システムで起こっているアクション。ユーザの意思決定。 • 呼び方はチームで。Action でも Intention
でも。 • コマンドは完了を意味しない。 [People] • まずは何かをする人を表す。利用者も、内部ユーザも。 • 異なるタイプの人、異なるステップで分けるのが有効なこともある。 ◦ 通勤目的の切符購入、休暇目的の切符購入。 ◦ モデルに欠陥が出てきたとき、差別化する対応はよくある。
カラーベースの文法 5:付箋の補足(System, ReadModel) [System] • 一般化して書くのはよくない。明示的にする。 ◦ Social Media <
Twitter, Facebook (代表的なものを書く) • 対話型システムの場合、横に長くなって行きがち。 ◦ Systemの後ろにEventを並べることがおすすめ。対話結果を重視する。 [ReadModel] • 与えられた決定を行うために必要な情報。 Event 1 System Event 2 Event 3
カラーベースの文法 6:付箋の補足(Policy) [Policy] • イベントに対するリアクション。 ◦ 暗黙的に行われるもの ◦ 明示的に行われるもの ◦
自動対応 • イベントとコマンドの間にはなくてはならないもの。 ◦ 明白すぎて気付きにくいこともあるが、2つの間には常にビジネス上の意思決定がある。 • 名前に時間をかけすぎないつけなくてもいい。 ◦ 何をするか、まずは実施することを声に出す。それでも名前が決まらないこともある。 • 嘘が多く混ざる場所。 ◦ ポリシー通りの実態があるとは限らない。 ◦ 議論の余地のあるトピックが多くある。 • 「いつも」「すぐ」と合わせて読む。 ◦ コーナーケースが見えてくる。
カラーベースの文法 7:付箋の補足(Value, Hotspots) [Value] • それぞれのStep で作られる、または削除される。 ◦ わかりやすいのはお金 ◦
なんらかの機会、不一致状況。時間、ストレス、満足。 • 原書だと2020.8.2時点では記述なし。 [HotSpots] • 矛盾、おかしいところ、質問を書く。 • Rush to the Goal を使って一つずつ解決していく。(次のステップ) People :( People :)
Model Session 中盤の対処 • 目に見えないものは口にしない。 • Rush to the Goal.
参考 • Introducing EventStorming ◦ https://leanpub.com/introducing_eventstorming • Software design as
a cooperative game with EventStorming ◦ スライド: https://www.slideshare.net/ziobrando/software-design-as-a-cooperative-game-with-eventstorming ◦ 動画: https://www.youtube.com/watch?v=awyMC9PZNfc (AgileByExample 2019) • 新しいモデリング手法: EventStorming (イベントストーミング) をはじめるための準備 ◦ https://yoskhdia.hatenablog.com/entry/2018/11/09/200556 • EventStorming; Core concepts, glossary and legend ◦ https://baasie.com/2020/07/16/eventstorming-core-concepts-glossary-and-legend/