Upgrade to Pro — share decks privately, control downloads, hide ads and more …

新規開発でイベントストーミングを実践したら体験が良かった話

 新規開発でイベントストーミングを実践したら体験が良かった話

■イベント
Sansan vs サイボウズ 開発生産性Tips夏祭り
https://sansan.connpass.com/event/324156/

■発表者
技術本部 Bill One Engineering Unit 杉崎 ⻯也

■ Bill One 開発エンジニア 採用情報
https://media.sansan-engineering.com/billone-engineer

■Sansan Tech Blog
https://buildersbox.corp-sansan.com/

SansanTech

July 26, 2024
Tweet

More Decks by SansanTech

Other Decks in Technology

Transcript

  1. 杉崎 ⻯也 Sansan株式会社 技術本部 Bill One Engineering Unit Core Business

    UMグループ VoIP系の会社からSansan株式会社へ⼊社し、Bill Oneの グループにジョイン。 元PHPerですが、最近はフロントエンド中⼼に書いてます。 その他としては業務プロセスの改善活動やサービスの 課題解決のための横断的な活動なんかもしています。
  2. マイクロサービス横断の申請承認(workflow)サービスを作りたかった - 要件を素早く設計に落とし込みたい - ローンチまで2ヵ⽉を切っていた - エンジニア以外との伝⾔ゲームを避けて仕様の⼿戻りを減らしたかった - 業務理解と設計を並⾏したかった -

    プロジェクト全体で、業務フローと概念・設計の理解を統⼀したい - 業務フローをプロジェクトチーム全員にインプットして進めたかった - ちょうどイベントストーミングを実施する機会があった
  3. - DDDの戦略的設計を実現する⼿段で、有識者と共に業務フローを明らかにする - その後、特定したコンテキストと集約を詳細化・修正して具体化する イベントストーミングってなんだっけ 境界づけら れたコンテ キスト ユビキタ ス⾔語

    サブドメ イン アプリケー ション サービス エンティティ 値オブジェ クト 集約 戦略的設計 戦術的設計 コンテキス トマップ Big Picture Business Process Modeling Software Design
  4. フェーズ - フェーズとして3つに分けられる。 - ドメインエキスパートは⻑くてもBPMまでの参加で充分。 Big Picture Business Process Modeling(BPM)

    Software Design イベントの洗い出し 時系列の整理 イベント駆動での業務フローの整理 境界づけられたコンテキストの特定 コンテキスト・集約の詳細化
  5. 実際の流れ 1. イベントを過去(分詞)形で書き出す 2. イベントをタイムラインに並び替える(似ているイベントをマージ) 3. ホットスポットの洗い出し 4. 1~3を繰り返す 5.

    並び替えたら業務フローが正しいか左から順に確認 6. フェーズ(pivotal event)で区切る 7. コマンド、アクター、ポリシー、外部システム、リードモデルを洗い出す 8. 集約を洗い出す 9. (後⽇)コンテキスト境界を決める
  6. やってみて: ⽣産性向上に寄与した点 - 参加したメンバー内での理解の共有 - ユビキタス⾔語ができたことで、以後の議論や実装がスムーズになった - 対話の中でドメインエキスパートの思想が⾒えて、より理解が深まった - ドメインエキスパートの意図が共有されることで、仕様としての⼿戻りの懸念

    が減ることが期待できた - イベントストーミングの成果物が残されることの利点 - 開発ストーリーをイベントごとに切りやすく、⾒通しが⽴てやすかった - 業務フロー図として、そのままドキュメントとして活⽤できた - 他チームへの説明する際にもドキュメントとして有効だった