🌿

Design Docはじめました

2024/12/18に公開

本記事は株式会社ココナラ Advent Calendar 2024 18日目の記事です。

はじめに

こんにちは。
株式会社ココナラ 経済圏共通基盤開発チームのfumiと申します。
私たちのチームでは、エンジニアが安心・安全に開発していくためにDesign Docを導入しました。
今回はなぜ導入に至ったのか、Design Docによって得られるメリットについて書きたいと思います。

Design Docとは?

Design Docとは、システムの設計に関する思想、指針、具体的な設計などを文章化したものです。
具体的には、アーキテクチャやシステムの構成、技術選定、テスト方針など、開発における重要な要素を整理した文章で、プロジェクトに関わるすべてのメンバーが共通の認識を持つためのツールです。

なぜDesign Docが必要なのか?

共通基盤開発は、多様なステークホルダーが関わり、システムのライフサイクルが長期にわたるという特性上、設計に関する情報共有の不足や、開発の遅延が懸念されます。
そこで、経済圏共通基盤開発チームでは、これらの課題解決のため、Design Docを導入することにしました。

Design Docを導入したメリット

Design Docを導入したことで、以下のようなメリットを得ることができました。

1. 設計思想の可視化と共有

  • 思想、指針の明確化: 抽象的な思想や指針を具体的な設計に落とし込むことで、関係メンバー全員が共通認識を持ち開発を進められます。
  • 情報共有の効率化: 設計思想を文書化することで、関係メンバー間での情報、認識共有がスムーズになり誤解を防ぐことができます。
  • レビューの促進: Design Docを共有し、設計思想に対するフィードバックを早期に得ることで、設計の品質を向上させることができます。

2. 設計の検証と改善

  • 設計の整合性チェック: Design Docを作成し、レビューすることで、設計に矛盾や抜け漏れがないかを確認できます。
  • 問題の早期発見: 設計段階でDesign Docと照合する事で、問題点を発見でき開発後の手戻りを減らすことができます。
  • 代替案の検討: Design Docを作成する過程で、様々な代替案を検討し、最適な設計を選択することができます。

3. 開発の効率化

  • 開発タスクの明確化: Design Docに基づいて開発タスクを明確化することで、開発者は何をすべきかを明確に理解し、効率的に開発を進めることができます。
  • 開発期間の短縮: 設計段階でDesign Docと照合し問題点を洗い出すことで、開発期間を短縮することができます。
  • コードの品質向上: Design Docに基づいて開発することで、設計意図を理解した上でコードを書くことができ、コードの品質向上につながります。

4. 組織的な知識の蓄積

  • ナレッジベースの構築: Design Docを蓄積することで、組織全体のナレッジベースを構築し、新しいメンバーがスムーズにプロジェクトに参加できるようになります。
  • 技術継承の促進: 設計に関する情報を文書化しておくことで、担当者が変わっても円滑に開発を引き継ぐことができます。

5. 意思決定の支援

  • 根拠に基づいた意思決定: Design Docに記載された情報に基づいて、設計に関する意思決定を行うことができます。
  • リスクの評価: 設計に潜むリスクを事前に評価し、対策を講じることができます。

Design Doc Guideの作成と全社展開

Design Docのメリットを最大限に活かすため、私たちチームでは、Design Doc Guideを作成しました。
このガイドには、Design Docの作成のメリット、注意点などを詳細に記述してあります。
全社的にDesign Docを作成する文化を醸成するため、作成したDesign Doc Guideを展開しました。

まとめ

Design Docを導入したことで、チーム全体で共通の認識を持つことができ、開発がスムーズに進むだけでなく、設計品質、コード品質向上にもつながりました。
今後は、Design Docを書く文化を全社に根付かせ、より良いソフトウェア開発を目指していきます!


明日は@Kou_arbnさんによるPagerDutyでサービス分割時のオンコール体制変更に対応するです。

ココナラでは積極的にエンジニアを採用しています。
特にPlatform Engineer は今すぐにでも一緒に働きたいのでJD をご一読ください
https://open.talentio.com/r/1/c/coconala/pages/99346
採用情報はこちら。
https://coconala.co.jp/recruit/engineer/

カジュアル面談希望の方はこちら。
https://open.talentio.com/r/1/c/coconala/pages/70417

Discussion