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

asken リアーキテクチャを行う背景と DDD導入戦略

むらひげ
September 15, 2023

asken リアーキテクチャを行う背景と DDD導入戦略

これまで培われたあすけんの複雑なシステムをリアーキテクチャするという課題に、組織内での専門的な知見が十分に存在しない中、我々が策定した戦略について説明します。リアーキテクチャする上の制約、設計思想にDDDを選択した理由、体制構築、中長期のマイルストーンなど。

むらひげ

September 15, 2023
Tweet

More Decks by むらひげ

Other Decks in Technology

Transcript

  1. 社外秘 © asken.inc 自己紹介 経歴 2005 - SIerでキャリアスタート 2013 -

    某ISPでアジャイル、DDDと出会って感銘を受ける 2023 - askenジョイン 最近のお仕事 ・プロダクト型組織への変換 ・DDDでのリアーキテクチャ、チームの立ち上げ その中でたくさんの失敗学習をしてきました 村上 英誉(ヒデタカ) 株式会社 asken 副部長/EM フルリモート@宮城県仙台市在住
  2. 社外秘 © asken.inc 現行システムの問題① P:サービスの構造とシステムの構造が不一致 サービスの構造 システムの構造 A B C

    AとC-1 B-1 B-2 C-2 変換 サービス、システム、変換ルールと 3つ理解する必要がある
  3. 社外秘 © asken.inc リアーキテクチャを行う 色々変えます ◦ 設計思想にDDDを採用 ◦ 言語・フレームワーク変更 ◦

    アーキテクチャ変更 ◦ CI/CDの仕組み変更 ◦ サーバ構成も変更 ◦ などなど
  4. 社外秘 © asken.inc 戦略 ドメインに集中 ドメイン分析/実装/検証により多くの時間を使う  → プロセスなどやり方を決めるところを効率よくやりたい 早めに検証 リリース後に致命的な後戻りを発生させない

     →本格的な開発の前に業務分析、モデリングの妥当性を確認する シンプル化 サービス仕様をシンプルにして作るものを減らす  →サービス仕様を再整理 or 実はもう使われてない機能などは削除 段階的リリース フィードバックを早く受けられる、成果を早く享受できる  →全部できてからリリースするのではなく、少しずつリリースしていく
  5. 社外秘 © asken.inc 戦略1.ドメインに集中 問題 知見のあるメンバーが社内にいなかった・・・ 対策 社外からでもアサインする - 採用:EM1名、エンジニア1名採用、継続して採用中

    - 業務委託:株式会社ミライトデザイン - DDDの実践経験あり - コンサルだけではなく開発チームに入って協業できる
  6. 社外秘 © asken.inc 戦略2.早めに検証 達成したいこと リリース後に致命的な後戻りを発生させない  →本格的な開発の前に業務分析、モデリングの妥当性を確認する やること 本格的に作り始める前に、PoCを3回作る -

    コアドメインの概要をモデリング、Domain、Applicationレイヤーの実 装をして、妥当性を確認する - 結果としてaskenメンバーがプロセスを習得できる、開発ツールの検証 にもつながる
  7. 社外秘 © asken.inc 戦略3.シンプル化 達成したいこと サービス仕様をシンプルにして作るものを減らす  →サービス仕様を再整理 or 実はもう使われてない機能などは削除 やること

    定期的にドメインエキスパートと対話する機会を設ける - サービス仕様の整理も一緒にやれると理想 - 成果物レビュー会を設け、ユースケース、ユースケース記述、ドメイ ンモデルなどレビューをする
  8. 社外秘 © asken.inc 一度にやらずに順番に対応 DB サブシステムA (コアドメイン) サブシステムB サブドメイン モバイルアプリ

    iOS/Android サブシステムC サブドメイン サブシステム・・ まずはここから DBは後回し コアドメインが終わってから
  9. 社外秘 © asken.inc マイルストン 技術選定 事前準備/検証 計画 本開発 本開発に向けて以下を実施中 -

    優先順位などの移行戦略 - 体制強化 - 育成方法の確立   ここがすごい大事 - ドメインに集中:DDDのやり 方を確立  - 早めに検証:コアドメインの モデルの分析/検証 これから ・人数を増やしながら実践 ・既存システムとの連携 ・既存メンバーの育成(暖簾分け) イマココ ドメインに集中 早めに検証 シンプル化 段階的リリース
  10. 社外秘 © asken.inc 戦略 ドメインに集中 ドメイン分析/実装/検証により多くの時間を使う  → プロセスなどのやり方は早めに固めてしまう 早めに検証 リリース後に致命的な後戻りを発生させない

     →本格的な開発の前に業務分析、モデリングの妥当性を確認する シンプル化 サービス仕様をシンプルにして作るものを減らす  →サービス仕様を再整理 or 実はもう使われてない機能などは削除 段階的リリース フィードバックを早く受けられる、成果を早く享受できる  →全部できてからリリースするのではなく、少しずつリリースしていく
  11. 社外秘 © asken.inc 何をするか 本格的な開発を始める前の準備が大事 - ドメインに集中するためプロセスは一旦早めに固めてしまう - 経験者はどうにかしてアサインする -

    ドメインの分析/設計/実装をして検証 フィードバックを得る - サービスをシンプルにするためドメインエキスパートと対話 - 早く得るため段階的にリリース