Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
本当にはじめられたイベントストーミング ―実践してみて見えたこと― / Practical E...
Search
ihcomega56
August 14, 2019
Technology
2
4k
本当にはじめられたイベントストーミング ―実践してみて見えたこと― / Practical EventStorming
FOLIO Scramble!
2020.06.18 URL変更のため上げ直しました。
ihcomega56
August 14, 2019
Tweet
Share
More Decks by ihcomega56
See All by ihcomega56
JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
ihcomega56
1
140
シリコンバレーのチームで経験したふりかえり - 共通点とギャップ / retrospectives in silicon valley
ihcomega56
5
1.9k
「サプライチェーン攻撃」に立ち向かう!SBOMを使った脆弱性管理がもたらす品質とスピード向上
ihcomega56
2
2.5k
アプリケーション開発者目線で語る、明日から始めるDevSecOps
ihcomega56
0
210
パターンマッチングを学んで新しいJavaの世界へ!Java 18までの目玉機能をおさらいしよう / Java 18 pattern matching
ihcomega56
3
1.4k
SCAとDockerを触ってみよう!DecSecOps入門ワークショップ / SCA and Docker workshop
ihcomega56
1
300
JFrogのDevOps Platformづくりを支えるオブザーバビリティ / JFrog Observability
ihcomega56
0
510
SBOMでソフトウェアを守れ!10年後も自信を持ってリリースするために今始めるDevSecOps / DevSecOps with SBOM for yourself 10 years from now
ihcomega56
1
6.5k
Javaアプリケーションの アーティファクト管理と DevSecOps / Java artifacts management and DevSecOps
ihcomega56
0
2.7k
Other Decks in Technology
See All in Technology
多様なデジタルアイデンティティを攻撃からどうやって守るのか / 20251212
ayokura
0
400
Debugging Edge AI on Zephyr and Lessons Learned
iotengineer22
0
150
Playwrightのソースコードに見る、自動テストを自動で書く技術
yusukeiwaki
13
5.2k
AI時代の開発フローとともに気を付けたいこと
kkamegawa
0
2.7k
エンジニアとPMのドメイン知識の溝をなくす、 AIネイティブな開発プロセス
applism118
4
1.2k
技術以外の世界に『越境』しエンジニアとして進化を遂げる 〜Kotlinへの愛とDevHRとしての挑戦を添えて〜
subroh0508
1
430
ログ管理の新たな可能性?CloudWatchの新機能をご紹介
ikumi_ono
1
620
第4回 「メタデータ通り」 リアル開催
datayokocho
0
120
Karate+Database RiderによるAPI自動テスト導入工数をCline+GitLab MCPを使って2割削減を目指す! / 20251206 Kazuki Takahashi
shift_evolve
PRO
1
660
EM歴1年10ヶ月のぼくがぶち当たった苦悩とこれからへ向けて
maaaato
0
270
コミューンのデータ分析AIエージェント「Community Sage」の紹介
fufufukakaka
0
470
【AWS re:Invent 2025速報】AIビルダー向けアップデートをまとめて解説!
minorun365
4
490
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
Six Lessons from altMBA
skipperchong
29
4.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
94
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Transcript
本当にはじめられた イベントストーミング ―実践してみて見えたこと― 2019.08.14 Scramble! #3 FOLIO流 複雑なドメインとの戦い方
これはアンサーソング 同イベントで@yoskhdiaが発表した 明日からはじめられるEventStorming https://speakerdeck.com/yoskhdia/ lets-try-eventstorming に捧げます
わたし •よこな •Twitter: @ihcomega (あとでここに資料流します) •チキン南蛮が好きです
10秒でおさらい command aggregate event read model policy actor external system
issue 発生するイベント 連携する外部システム イベントを発生させるコマンド コマンドを実行するアクター アクターの判断材料 コマンドのトリガー 集約 イシュー この順に 付箋を貼り出す
実践編でお伝えすること •いつ、どんなときにやればいいの? •やってみてどうなの?
一、 イベントストーミングの 分類
イベストのタイプ 多様 一様 参加者の職種 (バックグラウンド) 低い 高い 視点の 高さ
FOLIOでやったもの 多様 一様 参加者の職種 (バックグラウンド) 実績なし ① ② ③ 低い
高い 視点の 高さ
① 複数職種で: 機能のストーリー確認 ② エンジニアで: 役割分担の検討 ③ エンジニアで: 設計の準備として FOLIOでやったもの
多 一 低 高 実績なし ① ② ③
① 複数職種で: 機能のストーリー確認 ② エンジニアで: 役割分担の検討 ③ エンジニアで: 設計の準備として ①と③を扱います
FOLIOでやったもの 多 一 低 高 実績なし ① ② ③
二、 機能のストーリー確認
様々な職種でものづくり 証券 バックオフィス カスタマー サービス コンプライアンス 経営企画 QA エンジニア デザイナー
セキュリティ 投資戦略
足並み揃えたいが… •大人数で会議をしてみる •アウトプットしづらい •当事者意識が薄れる •マネージャーが調整を頑張る •時間も手間もかかる •漏れる
イベストチャンス! 何らかの機能やプロジェクトなど、 フローやストーリーがあるものを取り扱おうとして •関係者が多く調整が多発するとき •何から始めよう?と思ったとき •情報整理の術について迷っているとき •全体を可視化したいとき
command aggregate event read model UI policy actor external system
issue スコープ
イベントとイシューに しぼって実施した command aggregate event read model UI policy actor
external system issue スコープ
結果
よいところ •パラレルに作業するため、参加者全員 が効率よくアウトプットできる •15人ほどでやったこともある •用語の統一や知識の移転ができる •早い段階で強力な共有コンテキス トを作れる •共有の手間や漏れリスクが減る
よいところ •苦労せず視覚的な成果物が生まれる このへんに ʘイシューが多いʗ あのオレンジ ʘって…?ʗ 右側は割と ʘ楽そうʗ
工夫が必要なところ •急にやろうとすると参加者の時間調整 に少々苦労する •参加者の必須レベルを見極めて、 途中入退室可としたり、1回の中で パート分けをしたりする コンプライアンス部と 開発メンバーが 必須のパート 全員でやるパート
工夫が必要なところ •成果物のポータビリティがとても低い 上に場所を取る •壁リソースが潤沢なら、移動しな い前提で場所選びをした方がよい •模造紙を活用して持ち運んだり、 パノラマ写真を撮ったり、歯を食 いしばってデジタル化したりする •成果物を継続的に使うか見極める
ファシリテーション •必ず準備しよう •ゴールやスコープは? •誰に参加してもらうべきか? •参加者の文房具リテラシーをあげるの はオススメ •付箋の剥がし方 •水性・油性マジックの違い
ファシリテーション •参加者の迷いを払拭しよう •「何このイベント?」と思ってい る人を導く(ただし、思考を狭めな いよう多くは指示しない) •誤りや重複を気にしないよう安心 させる •発言を付箋化するよう促す
ファシリテーション •意外と疲れるので、元気を保てる工夫 をしよう(参加者も疲れる) •飲み物やおやつを用意する •休憩を取る •動きやすい格好推奨(ヒールで足が棒になった…)
ファシリテーション •イベスト文化ができていくので、毎度 大きくやり方を変えない方がベター •たとえば、FOLIOでは「イシュー = ピンクの付箋」という認識が生 まれつつある •「あのへんにピンクが多い…」 •「このピンクをやっつけるぞ」
三、 設計の準備
メールアドレスの再設定 メアドが使えず ログインできぬ… 資産をお預かり中 ログインを諦めていただく わけにはいかない
メールアドレスの再設定 ご本人様確認を します
メールアドレスの再設定
メールアドレスの再設定 …という機能を開発する際に用いた
開発あるあるな悩み •複雑な仕様と戦うための知識レベルが チーム内でバラバラである •設計をいきなり手分けするのは難しい •決まったことの記録や共有が不十分な ことがある
イベストチャンス! •何から始めよう?と思ったとき •チーム内で知識移転したいとき •設計の前に情報整理しておきたいとき •タスクの分解に悩んだとき
command aggregate event read model UI policy actor external system
issue スコープ
(イベストの登場人物ではないUIを除き) すべてを扱った command aggregate event read model UI policy actor
external system issue スコープ UI
結果
可視化・情報共有・知識移転などのメリットは 前半の話と同様にもちろん存在する では、詳細な設計をするにあたり •イベストが役立ったことは? •イベストだけではイマイチだった・足り なかったことは? ※バックエンドにフォーカスした内容です ここまではいいとして…
QA イベストのその先へ ì í î ï ð ï ñ ò
î ó ô õ ì î ö ÷ ø î ó ù ñ ð ú ñ ð 記 述 ü ñ ú î ð 図 画 面 ÿ ! ñ ÷ " ì î # î $ ER 図 見 積 ' ( ) 計 画 精 緻 化 開 発 ÷ " ì î $ ! , - . ï / 0 , õ î ï ì ü 1 ñ 2 解 決 ) 仕 分 3 4 ð ï 設 計 書 6 ñ ô
見 積 ' ( ) 計 画 精 緻 化
QA イベストのその先へ ì í î ï ð ï ñ ò î ó ô õ ì î ö ÷ ø î ó ù ñ ð ú ñ ð 記 述 ü ñ ú î ð 図 画 面 ÿ ! ñ ÷ " ì î # î $ ER 図 開 発 ÷ " ì î $ ! , - . ï / 0 , õ î ï ì ü 1 ñ 2 解 決 ) 仕 分 3 4 ð ï 設 計 書 6 ñ ô ダイレクトに イベストが活きるのは このあたり
イシューの整理
イシューの整理 何をした?どうだった? •挙がったイシューをすぐ解決するか、 解決に向けた計画を立てた •そのプロジェクトで「やること」と 「やらないこと」を明確に分けた •既にリストアップは済んだ状態なので スムーズ◎ VS データ化が大変△
command aggregate event read model UI policy actor external system
read model UI external system aggregate issue command policy actor イシューの整理 イベストとの関係
ドメインモデリング
ドメインモデリング 何をした?どうだった? •アウトプットは 概念図 •イベストの結果は あまり活用でき ず、イチから検討 してしまった
•イベストで出た境 界の中身を埋める ようなアプローチ ができたかも •イベスト中にこと ばの定義を明らか にするプロセスが 足りなかったかも aggregate ドメインモデリング
次はこうしたい
command aggregate event read model UI policy actor external system
issue read model UI external system command policy actor ドメインモデリング イベストとの関係 event
ユースケース記述
•イベストの結果を 元に丁寧に書いた •QAメンバーへの仕 様共有、テスト設 計書作成 •見積もりや計画 に役立った ユースケース記述 何をした?どうだった?
ユースケース記述 次はこうしたい •参加メンバーにとっては価値が薄い可 能性があるため、浸透の努力をしたい •非参加メンバーへの伝達手段 •メンテし続けるドキュメント •後世への記録 として価値はあるし、イベストを していると書き起こしやすい
command aggregate event read model UI policy actor external system
issue read model UI external system aggregate ユースケース記述 イベストとの関係
ユースケース記述 イベストとの関係
command event policy actor event アクター 目的 事前条件 メインフ ロー
代替フロー 事後条件 command policy ユースケース記述 イベストとの関係
ユースケース記述 イベストとの関係 ※説明用に変更・簡略化しています
設計の準備 まとめ
設計とイベスト command aggregate event read model UI policy actor external
system read model UI external system issue ユースケース記述 ドメイン モデリング イシュー 整理
設計とイベスト command aggregate event policy actor external system external system
issue ユースケース記述 ドメイン モデリング イシュー 整理 デザイン ? read model UI
設計とイベスト command aggregate event policy actor external system external system
issue ユースケース記述 ドメイン モデリング イシュー 整理 デザイン ? read model UI 設計を進めるのに 必要な思考の過程を 複数人で集中して 辿ることができる
よいところ •前半の計画や設計 を手厚く行う助け となり、後半でス ピードが出た (一番左がすごいことになってます が、正直にお見せします) •いわゆる認識齟齬 による手戻りはな
かった 計画 実績 時 間 (グラフはJIRAより取得)
•参加したメンバー 内での共有が強力 な反面、外への共 有は意識的にやる 必要がある 工夫が必要なところ border ? … ?
四、 おわりに
イベストはおすすめか? •工夫は要るがまずやってみて損はない •少しでも良いなと思ったら、何度か やってみると洗練されていく •アクティビティそのもののみならず、 「イベストで出たものをどう活用して いくか?」を考えることに価値がある し、ここにチームごとのカラーが出る
参考文献 • 「新しいモデリング手法: EventStorming (イベントストーミング) をはじ めるための準備」from yoskhdia’s diary https://yoskhdia.hatenablog.com/entry/2018/11/09/200556
• Alberto Brandolini「Introducing EventStorming」 • ダグ・ローゼンバーグ、マット・ステファン「ユースケース駆動開発実践ガ イド」
T H A N K Y O U