コドモン Product Team Blog

株式会社コドモンの開発チームで運営しているブログです。エンジニアやPdMメンバーが、プロダクトや技術やチームについて発信します!

はじめてのイベントストーミングで得られたものと学び

こんにちは!プロダクト開発部エンジニアリングマネージャーの上代です。
新しい機能を追加するにあたり、2025年3月にチームでイベントストーミングを実施しました!
この記事では、なぜイベントストーミングを行ったのか、どのように実施したのか、得られた学びや今後の活用についてお伝えします。

なぜイベントストーミングをやろうと思ったのか?

課題

  • 新しい機能の開発を進める中で、それぞれの認識にズレがあることに気づく場面が多かった。
  • 業務の流れや背景を体系的に把握できるドキュメントがほとんどなく、後からチームに参加するメンバーがキャッチアップしづらい状況だった。

イベントストーミングを選んだ理由

今回イベントストーミングを取り入れることになった大きなきっかけは、成瀬さんに講師として社内でワークショップを開いていただいたことでした。 実際に参加してみて、「これは、コードとして実装する前にチーム全体の理解を揃えるのにとても効果的だ」と実感し今回の取り組みにつながりました。

ワークショップについての記事もぜひご覧ください!

tech.codmon.com

tech.codmon.com

どうやって実施したか?

参加メンバー

  • エンジニア
  • QA
  • デザイナー
  • PdM

使用ツール

今回のイベントストーミングは、「Miro」を使って実施しました。 付箋を自由に配置でき、色分けやグルーピングも直感的にできるので、イベントの洗い出しや整理にぴったりでした。 リアルタイムで複数人が同時に編集できるため、リモート環境でもチーム全体での対話がしやすかったです。 最終的には以下のような感じになりました。

進め方

オレンジの付箋に「イベント」を書き出す

例:「利用申請が作成された」「承認依頼が送信された」など(※すべて過去形で記述)

タイムライン順に並べる

業務の流れが時系列でどうなっているかを可視化。

イベントを精査する

抜け漏れ・重複・因果関係を見直して調整。

コマンド、アクター、ReadModelを追加する

イベントをトリガーする操作(コマンド)や関係する主体(アクター)、影響する集約やデータの読まれ方(ReadModel)を追記。 付箋は以下のように色分けしていました。

  • コマンド:ブルー
  • アクター:イエロー
  • ReadModel:グリーン

集約を見つける

イベントやコマンドをもとに議論をしてライトイエローの付箋に集約を記載。

実施して良かったこと

メンバー間の業務理解が揃った

普段は言語化されていなかった業務の流れや背景知識が、自然と共有されたかと思います。 個々のメンバーが持っていた断片的な情報がつながり、チームとしての共通理解が生まれたのは大きな収穫でした。

業務フローの全体像を可視化できた

時系列でイベントを並べていくことで、業務がどのように始まり、どのように終わるのか、一連の流れを俯瞰(ふかん)して見られるようになりました。 それぞれの工程がどこにつながっているのか、点ではなく線として業務を捉えられたのは、仕様を詰めるうえでも大きなヒントになりました。

集約や責務の分担が自然と整理された

イベントの流れをたどる中で、どの操作がどのドメインに属するべきかといった設計のヒントが得られ、DDD的な観点での共通理解が深まりました。

学びや改善点

ファシリテーションで意識したこと

イベントの書き出しとタイムライン順に並べるまでは全員参加

 業務に関わるメンバー全員で、思いついた出来事をどんどん出していきました。

後半はエンジニア中心で設計的な深掘り

 出てきたイベントをもとに、議論を行い、アーキテクチャやドメインモデルの構造整理につなげていきました。

「イベント」という言葉のハードル

「イベントって何?」という問いから入る人が少なくなかったのも印象的でした。 今回は「◯◯が起きた」「◯◯が完了した」といった過去形で表現される出来事をイベントと定義して進めましたが、もう少し用語の意味を共有する工夫が必要だと感じました。

今後の活用方法

状態遷移の整理

チームでは状態を型で表現していることもあり、どんな状態があり得て、どう遷移していくのかを議論するベースとしても使えそうだと思っています。

テスト設計

イベントベースで「どういう条件で何が起きるか?」を整理しているため、そのままテストケースに落とし込みやすいと思っています。

コードに落とし込む

そのまま設計に活かせるだけでなく、関心ごとの分離や責務の切り方を議論するきっかけにもなると感じています。

おわりに

イベントストーミングを通じて、認識のズレや曖昧だった部分が整理され、チームとして前に進むための土台ができたと感じました。 また、イベントストーミングはただの設計手法ではなく、チームの対話を生み出す場でもあり、あらためてとても良いワークショップだと実感しました。 今後もこの取り組みを、機能追加や見直しのタイミングで継続的に取り入れていきたいと思っています。