ドメイン駆動設計(DDD)のコンテキストにおいて,Event Stormingは極めて有用で価値のあるものだ – 先日ロンドンで開催されたDDD eXchangeカンファレンスのプレゼンテーションで,Dan North氏はこのように主張して,Event Stormingの基本的メカニズムを説明するとともに,過去数年間にさまざまなシステムをモデリングした自身の経験について公開した。
Event Stormingとは,広いモデリング空間を確保できる部屋に主要なステークホルダが集合して,システムの状況を付箋を使って説明するミーティングである。オレンジ色の付箋はドメインイベント,すなわち発生した事象を過去形で記述したものだ。North氏はいつも最後のイベント(Last Event)からミーティングを開始する。そうすることで,目標に対するフォーカスが保たれるからだ。次に氏は最初のイベント(Start Event)を追加し,開始から終了までのタイムラインを描く。
共通の付箋としては,他に次のものがある。
- イベントはコマンド(Command)によって起動され,青色の付箋でモデル化される。コマンドには人が開始するもの以外に,システムにインジェクションされる外部イベントや,タイマによって起動されるものがある。
- 質問(Question)その他の問題は,ピンクの付箋でモデル化される。
- 人々が見たもの,あるいは見たいものを説明する場合,North氏はこれを緑の付箋で,ビュー(View)または参照モデル(Read Model)としてモデル化する方法を主に使用している。
North氏はしかし,この方法がすべてのケースに当てはまるものではない,としている。氏が推奨するのは,モデル化しようとする状況に合わせた方法である。
氏によれば,Event Stormingの真の価値は成果をモデリングすることにある。我々は,何が起きるのか,それはどのような選択の結果だったのか,ということに関心を持っている。プロセスやアクティビティ,人々の行動などのモデリングは従来から行われてきたが,人の行動を起点とすることが多いという意味において,極めて制約の多いものであった。行動の成果に注目して,イベントとしてモデル化することができれば,より多くの選択性を得ることができる。
Event Stormingが非常に効果的なのは,意味のある多数の作業が並行して行われる点にある。人は通常,自分が毎日行なっている作業部分を重視するため,モデルのさまざまな部分に従事する人たちによってグループが形成される。多くの場合これは,クラスタ内にモデルを作り出し,凝集してサブシステム化する。マネージャのようにプロセス全体を知っている人が,もっと広い視野を持って,すべてが首尾よく実行されていることを確認するのだ。
モデリングの重要なステップのひとつは,どのイベントが重要なのかを考えることだ - 結果を得るために必ず起きなくてはならないイベントもあれば,それとは逆に,プロセスの一部として発生しても結果には影響しないイベントもある。プロセスから不要なものを取り除くことによって,この問題を大幅に単純化できる場合もある。
Event Stormingは,Impact MappingやStory Mappingなどのコラボレーティブな発見行動と同じ分野に特にフィットする,とNorth氏は指摘する。 氏自身は,共通理解の構築にEvent Stormingを,方向感覚の獲得にImpact Mappingを,そして最終的なアプリケーションの実装と展開方法を得るためにStory Mappingを使用している。
Vaughn Vernon氏は以前のプレゼンテーションで,Event Stormingについて,コンテキスト境界を見つける上で重要なツールであると説明した。
Event Stromingを考案したAlberto Brandolini氏は現在,“Introducing EventStorming”という書籍を執筆中である。
来年のDDD Exchangeは2017年4月下旬を予定しており,登録受付が始まっている。
この記事を評価
- 編集者評
- 編集長アクション