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
62
シリコンバレーのチームで経験したふりかえり - 共通点とギャップ / retrospectives in silicon valley
ihcomega56
5
1.8k
「サプライチェーン攻撃」に立ち向かう!SBOMを使った脆弱性管理がもたらす品質とスピード向上
ihcomega56
2
2.3k
アプリケーション開発者目線で語る、明日から始めるDevSecOps
ihcomega56
0
140
パターンマッチングを学んで新しい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
440
SBOMでソフトウェアを守れ!10年後も自信を持ってリリースするために今始めるDevSecOps / DevSecOps with SBOM for yourself 10 years from now
ihcomega56
1
5.9k
Javaアプリケーションの アーティファクト管理と DevSecOps / Java artifacts management and DevSecOps
ihcomega56
0
2.4k
Other Decks in Technology
See All in Technology
アップデート紹介:AWS Data Transfer Terminal
stknohg
PRO
0
180
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
13
3.6k
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
280
非機能品質を作り込むための実践アーキテクチャ
knih
3
980
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
160
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
160
サービスでLLMを採用したばっかりに振り回され続けたこの一年のあれやこれや
segavvy
2
390
Turing × atmaCup #18 - 1st Place Solution
hakubishin3
0
470
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
社外コミュニティで学び社内に活かす共に学ぶプロジェクトの実践/backlogworld2024
nishiuma
0
260
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
520
ハイテク休憩
sat
PRO
2
140
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.3k
How GitHub (no longer) Works
holman
311
140k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Thoughts on Productivity
jonyablonski
67
4.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
A better future with KSS
kneath
238
17k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Raft: Consensus for Rubyists
vanstee
137
6.7k
Making Projects Easy
brettharned
116
5.9k
Facilitating Awesome Meetings
lara
50
6.1k
What's in a price? How to price your products and services
michaelherold
243
12k
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