イベントストーミングセッションを実施するためのガイド

公開: 2021-07-20

ビジネスシステムの包括的な理解を深めるのは大変な作業です。 これには通常、高レベルのモデリングまたは複雑なプロセスマッピングが含まれます。 これは、多くの試行錯誤を伴う非常に技術的で骨の折れるプロセスになる可能性があります。 BPMN図またはUML回路図を作成することは、ビジネスのより広範な機能を理解するのに非常に役立ちますが、それらは本質的に技術的なものであり、技術的でない分野の専門家を除外できます。

ドメイン駆動設計

ドメイン駆動設計は、ビジネスニーズとプロセスの詳細な理解を可能にするテクノロジーに依存しない言語を確立する方法論です。 これにより、利害関係者は、言語に依存しない方法でチームの他のメンバーにドメイン知識を伝達して、システムの共通の理解を深めることができます。

イベントストーミングとは何ですか?

イベントストーミングは、ドメイン駆動設計へのワークショップベースのアプローチであり、技術的および非技術的な利害関係者を集めて複雑なビジネスドメインを探索します。 これは、ビジネスプロセスまたはビジネスアプリケーションのコンテキストで生成されるドメインイベントに焦点を当てています。 通常、製品の所有者、ドメインの専門家、開発者が関与します。

イベントストーミング方法は、AlbertoBrandoliniによって「EventStormingの紹介」で紹介および公開されました。 これは、ソリューション設計を迅速にキャプチャし、チームの設計に対する理解を向上させるための手法として使用されます。

イベントストーミングはグループ学習の一形態であり、開発チームと製品チームを統合して代替ソリューションを一緒に作成する楽しい方法です。 イベントストーミングは、成熟した製品を使用するチームがプロセスを注文し、ボトルネックや競合領域を見つけるのにも役立つ場合があります。

イベントストーミングセッションは通常、次の目的で実施されます。

  • プロジェクト開発のためのビジネスモデルを作成します。
  • 製品モデルのすべての複雑さについて「全体像」を把握し、その目標とニーズを強調します。
  • 製品モデルを視覚化し、代替ソリューションをブレインストーミングします。
  • 成熟した製品のボトルネックと競合領域を見つけます。

イベントストーミングのメリット

製品を構築する際には、開発チームが製品を運用するビジネスドメインに精通していることが重要です。これにより、より明確な初期分析とより焦点を絞った構築が可能になります。 イベントストーミングセッションのようなワークショップは、ビジネスチームと製品チーム間の全体的な協力を後押しすることができます。

クイック:他のほとんどのビジネスプロセスモデリング手法は、ビジネスの運用を深く掘り下げています。 複雑なデータモデルを使用する必要があり、正確な画像を描くのに数週間かかる場合があります。 イベントストーミングは、ドメイン駆動設計をモデル化するための迅速なアプローチです。 イベントストームは通常、完全なビジネスプロセスを数時間でマッピングできる1日のイベントです。

技術的利害関係者と非技術的利害関係者の間で共有される理解:UMLとは異なり、イベントストームは、事前の技術的知識がなくても簡単に理解できるビジネスプロセスの表現を作成します。

コラボレーティブ:イベントストームのコアコンセプトは、ドメインエキスパート間の参加と相互作用を促進することです。 ビジネスモデルを作成するための魅力的な環境を作成し、より価値のある洞察を発見します。

効果的:イベントストーミングの最大の利点は、それが開始する会話です。 チームは、ワークショップで得られた知識を使用して、将来のモデリングプロセスに情報を提供し、製品を構築するか、単にイベントストーミングを使用して、ビジネスプロセスをよりよく理解し、今後のより良い意思決定を行うことができます。

イベントストームの実施

イベントストームを実施するには、特定のドメインの専門知識を持つさまざまな利害関係者を集める必要があります。 これは、物理的な場所で実行することも、Createlyなどの共同ホワイトボードツールを使用して仮想的に実行することもできます。 これにより、セッション全体を1つの無限のキャンバス上でリモートで実行でき、利害関係者がリアルタイムで考えやアイデアを交換できる共有スペースとして使用できます。

ステップ1:ドメインイベント

最初のステップは、ドメインイベントを識別することです。 これらは、ビジネスシステムで起こったことについての事実に基づく記述です。 参加者はブレインストーミングを行い、重要な反応を引き起こしたシステムで起こったすべてのことをリストアップします。 次に、これらのイベントを仮想キャンバス上の色分けされたメモとして一覧表示します。 参加者がこれを「何が起こったのか」のステートメントとして組み立てることができるように、過去形でこれらのステートメントを表現することが重要です。 参加者がイベントをキャンバスに追加すると、イベントが発生した時間枠に従ってイベントを整理し始めることができます。

ドメインイベントの例

ステップ2-コマンド

次のステップは、イベントが発生した理由を特定することです。 この段階で、チームはイベントをトリガーしたものを分析します。 イベントは過去についての事実に基づく記述ですが、コマンドは将来何かが起こるという私たちの意図を表しています。 コマンドは通常、青いメモに記載されています。 イベントは過去形のステートメントとしてキャプチャされますが、コマンドは現在形の意図としてリストされます。 コマンドは、ユーザーアクションとシステムアクションの両方として文書化される場合があります。

共同ドメイン設計のためのイベントストーミングテンプレート
イベントストーミングテンプレート(テンプレートをクリックしてオンラインで編集)

ステップ3-骨材

これらは、一般的にイベントのグループで発生するシステムで発生することです。 それらは、名詞として表されるべき高次の事業体です。

たとえば、「注文プロセス」。 アグリゲートは通常、キャンバス上のメモのコレクションで構成されます。

これは、対応するコマンドと責任のあるアクターを持つイベントのクラスターによって表されます。 次に、その集合体に名前を付けて、キャンバス上のより大きな色で調整されたメモに配置できます。

ステップ4–境界のあるコンテキスト

これは、関連するエンティティをグループ化する機能の分類で構成される高レベルの構造です。 チームは、関連するモジュールの周りにボックスまたは円を描くことにより、境界付きコンテキストと呼ばれる要素内のモジュールをグループ化し始めます。 次に、制限されたコンテキスト内のモジュールが他のコンテキストとどのように相互作用するかを示すことにより、コンテキストマッピングを開始できます。 簡単に言えば、関連するすべてのイベントは、同じ境界のあるコンテキストに分類されます。 たとえば、ショッピングカートに関連するすべてのイベントは、ショッピングカートに制限されたコンテキストに分類されます。

制限されたコンテキストでのイベントストーミングセッション
制限されたコンテキストを持つイベントストーミングテンプレート(テンプレートをクリックしてオンラインで編集)

イベントストーミングセッションを実施するためのヒント

  • 参加者:イベントストームを成功させるための重要な側面は、適切な人材を組織化することです。 参加者は、複数のドメインにわたるドメインの専門知識を持つ主要な利害関係者で構成される必要があります。 効果的なイベントストームには通常、自由に流れる会話とコラボレーション環境を確保するための少数の利害関係者がいます。
  • セッションの計画:セッションの目標と意図を設定します。 これにより、セッションに何を含める必要があり、どの側面を除外する必要があるかに焦点を当てることができます。
  • 事前に指示を送信する:参加者が演習のポイントとは何か、そして彼らに何が期待されているかを理解できるようにします。 キーとは何か、さまざまな色のメモが何を表しているかについての指示を送信し、参加者がセッションを実施する際に明確に理解できるようにします
  • 非技術的な言語で話し合う:実装の詳細によって会話が滞らないようにします。 これらの会話は、技術的なバックグラウンドに関係なく、誰もが参加できるように、本質的により概念的なものでなければなりません。
  • 例を提供する:参加者が何に取り組む必要があるかを理解できるように、完成したイベントストーミングキャンバスを紹介すると便利です。

イベントストーミングセッションを実施した経験はありますか? それについて教えてください。

以前にイベントストーミングセッションに参加または実施したことがありますか。あなたの経験と、得られた学習の一部についてお聞かせください。 コメント欄であなたの考えを教えてください。