こんにちは! コドモンプロダクト開発部の靍田です。
コドモンでは「Codmon Tech Meet」と称して、3か月に一度、外部の講師を招いて開発に関する学びを深める機会を設けています!
今回は、2024年2月9日(金)に成瀬允宣さんをお招きして、社内のPdM、エンジニアを対象にイベントストーミングを用いたドメインモデリングのワークショップを開催しました。今回は当日の様子についてレポートしていきます!
イベントストーミングとは
イベントストーミングとは、Alberto Brandolini氏が考案した協働的にドメインモデルを構築することを目的としたワークショップです。 ドメインを理解し、それをモデル化するための手法として、開発者以外のシステム開発に遠いチームメンバーも参加しやすいように設計されています。
ワークショップの目的と内容
目的
今回のワークショップの主な目的は、「チーム全体がドメインモデリングの能力を身につけ、日常的に活用できるようになること」でした。
コドモンでは、ドメイン駆動設計(DDD)のアプローチを取り入れようとしていて、新規機能開発やシステムのリプレイスには部分的にモデリングを取り入れてきましが、これが全社的にはまだ十分に浸透していないというのが現状です。
普段からユーザーストーリーの定義はPdMとエンジニアが協力して行っているため、ドメインモデリングにおいても同じように協力して進められるようになりたいと思っていました。 そこで、PdMとエンジニアが共同でドメインモデリングに取り組むことができるようになることを目指し、今回は成瀬さんにワークショップを依頼させていただきました。
講義の内容
当日の講義は、座学パートとワークショップパートを組み合わせた形式で合計3時間半ほどの内容でした。
当日の流れ
当日は以下の流れで進めていきました。
- 成瀬さんによるイベントストーミング実演
- チームにわかれてイベントストーミング実践
- モデリングしたものをコードに起こす手法について紹介
- 質疑応答
参加者内訳
- エンジニア:15名
- PdM:5名
ワークショップのハイライト
成瀬さんによるイベントストーミング実演
イベントストーミングが初めての参加者にもイメージしやすいように、コドモンの実際のユースケースを使用して、イベントストーミング全体の流れを実演していただきました。 成瀬さんはコドモンのユースケースに関する知識がないため、PdMにヒアリングをしながら進めていただいたのですが、どんどん形になっていく様子を見て、エンジニアのヒアリング力の大切さを実感しました。
チームにわかれて実際にイベントストーミングでモデリング
事前に選出した20名のメンバーが4~5人のチームにわかれて、あらかじめ用意していたユースケースをテーマに実際にイベントストーミングを用いたモデリングを行いました。 実演パートを通じて「自分でもできそう!」と思っていたのですが、実際にやってみるとなかなか難しく、形になるまでに思っていたよりも時間がかかりました。
ワークショップの最後には、各チームがモデリングした内容を成瀬さんにフィードバックしていただき、より理解を深めていきました!
コードに起こす手法について紹介
最後に、モデリングした内容をコードに落とし込む手法について紹介していただきました。
イベントを前提としない従来の実装と、イベントを前提としたイベントソーシングによる実装の違いについての簡単な説明と、イベントソーシングによる実装のメリットについて解説していただきました。
今回のワークショップのメインはイベントストーミングによるドメインモデリングだったため、イベントソーシングについてはあくまで紹介程度でしたが、エンジニアとしては興味深い内容で、後日コードに書き起こすワークショップも開催したいという声が多く上がりました!
まとめ
今回のワークショップにPdMとエンジニアで参加したことで、チーム全体でモデリングに対して考えるきっかけになったと感じています。 特に、PdMとエンジニアが協力してドメインモデリングを行うことで、ビジネス的な視点と技術的な視点を同時に考慮することができ、システムの仕様に対して共通の認識を持つことができるのは大きなメリットだなと感じました。
しかし、ワークショップの目的である「チーム全体がドメインモデリングの能力を身につけ、日常的に活用できるようになること」を実現するにはまだ課題があり、イベントソーシングを繰り返し実践していく必要があると思っています。 今後はより日常的にモデリングを実践できるように、チーム全体で取り組んで行きたいと思います!
最後となりますが、成瀬さんワークショップの開催ありがとうございました!
過去のCodmon Tech Meetの様子が気になる方は、こちらの記事もぜひご覧ください!