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
本当にはじめられたイベントストーミング ―実践してみて見えたこと― / Practical E...
Search
ihcomega56
August 14, 2019
Technology
2
3.7k
本当にはじめられたイベントストーミング ―実践してみて見えたこと― / 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
0
56
シリコンバレーのチームで経験したふりかえり - 共通点とギャップ / retrospectives in silicon valley
ihcomega56
5
1.8k
「サプライチェーン攻撃」に立ち向かう!SBOMを使った脆弱性管理がもたらす品質とスピード向上
ihcomega56
2
2.2k
アプリケーション開発者目線で語る、明日から始めるDevSecOps
ihcomega56
0
130
パターンマッチングを学んで新しいJavaの世界へ!Java 18までの目玉機能をおさらいしよう / Java 18 pattern matching
ihcomega56
3
1.3k
SCAとDockerを触ってみよう!DecSecOps入門ワークショップ / SCA and Docker workshop
ihcomega56
1
230
JFrogのDevOps Platformづくりを支えるオブザーバビリティ / JFrog Observability
ihcomega56
0
430
SBOMでソフトウェアを守れ!10年後も自信を持ってリリースするために今始めるDevSecOps / DevSecOps with SBOM for yourself 10 years from now
ihcomega56
1
5.8k
Javaアプリケーションの アーティファクト管理と DevSecOps / Java artifacts management and DevSecOps
ihcomega56
0
2.4k
Other Decks in Technology
See All in Technology
Taming you application's environments
salaboy
0
180
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
430
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
強いチームと開発生産性
onk
PRO
34
11k
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
170
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
Amazon CloudWatch Network Monitor のススメ
yuki_ink
1
200
Terraform Stacks入門 #HashiTalks
msato
0
350
Lexical Analysis
shigashiyama
1
150
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
2
350
Can We Measure Developer Productivity?
ewolff
1
150
Featured
See All Featured
Six Lessons from altMBA
skipperchong
27
3.5k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Agile that works and the tools we love
rasmusluckow
327
21k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
The Pragmatic Product Professional
lauravandoore
31
6.3k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Documentation Writing (for coders)
carmenintech
65
4.4k
What's new in Ruby 2.0
geeforr
343
31k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
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