ストーリー
ドキュメントの種類と目的
interface DocumentType {
name: string;
purpose: string;
audience: string;
updateFrequency: string;
location: string;
}
const documentTypes: DocumentType[] = [
{
name: "オンボーディングガイド",
purpose: "新メンバーの立ち上げを高速化",
audience: "新入メンバー",
updateFrequency: "入社のたびにフィードバックを反映",
location: "リポジトリ docs/onboarding/",
},
{
name: "ADR(Architecture Decision Record)",
purpose: "設計判断の記録",
audience: "開発チーム全体",
updateFrequency: "意思決定のたびに追加",
location: "リポジトリ docs/adr/",
},
{
name: "Runbook(運用手順書)",
purpose: "障害対応の手順を標準化",
audience: "オンコール担当者",
updateFrequency: "障害対応後に更新",
location: "リポジトリ docs/runbook/",
},
{
name: "API ドキュメント",
purpose: "APIの仕様と使い方を共有",
audience: "API利用者(社内/社外)",
updateFrequency: "APIの変更と同時",
location: "OpenAPI Spec + 自動生成",
},
{
name: "技術仕様書(Design Doc)",
purpose: "設計の全体像と意図を伝える",
audience: "開発チーム",
updateFrequency: "実装中に随時更新",
location: "リポジトリ docs/design/",
},
{
name: "チーム Wiki",
purpose: "暗黙知の形式知化",
audience: "チーム全体",
updateFrequency: "随時",
location: "Notion / Confluence / GitHub Wiki",
},
];
ドキュメントを書いてもらう仕組み
「ドキュメントを書こう」と言うだけでは書いてもらえません。仕組みが必要です。
## 1. DoD(Definition of Done)に含める
タスクの完了条件にドキュメント更新を含める。
「コードを書いただけでは"Done"ではない」
## 2. テンプレートを用意する
空白のドキュメントに書き始めるのは難しい。
テンプレートがあれば、穴埋めで書ける。
## 3. コードの近くに置く
READMEやdocs/ディレクトリなど、コードと同じリポジトリで管理。
PRのレビュー対象にドキュメントも含める。
## 4. 自動生成を活用する
- APIドキュメント: OpenAPI Spec + Swagger UI
- コードドキュメント: TypeDoc / JSDoc
- 変更履歴: CHANGELOG の自動生成
## 5. 書いた人を称える
「このRunbook、助かりました」のフィードバックが次のモチベーション。
ドキュメントの品質を保つ
| 問題 | 対策 |
|---|---|
| 古くなった情報が残る | 定期レビュー(四半期に1回) |
| どこに何があるか分からない | INDEXページの整備、検索の改善 |
| 書いたが読まれない | オンボーディングで読む機会を作る |
| 情報が重複する | Single Source of Truth を決める |
| 粒度がバラバラ | テンプレートとガイドラインの整備 |
## ドキュメントヘルスチェック(四半期に1回)
### チェック項目
- [ ] オンボーディングガイドで実際にセットアップできるか
- [ ] Runbookの手順は最新のインフラに対応しているか
- [ ] ADRの一覧は最新か
- [ ] リンク切れがないか
- [ ] 不要になったドキュメントはアーカイブされているか
Docs as Code
ドキュメントもコードと同様に管理する考え方です。
## Docs as Code の原則
1. **バージョン管理**: Git でドキュメントを管理
2. **レビュー**: PRでドキュメントもレビュー対象に
3. **自動化**: CI/CDでドキュメントをビルド・デプロイ
4. **テスト**: リンク切れチェック、スペルチェック
5. **プレーンテキスト**: Markdown / AsciiDoc を使用
## ツールの例
| ツール | 用途 |
|--------|------|
| MkDocs | Markdown → 静的サイト |
| Docusaurus | React ベースのドキュメントサイト |
| Storybook | UIコンポーネントのドキュメント |
| Swagger UI | OpenAPI からAPI ドキュメント生成 |
まとめ
| ポイント | 内容 |
|---|---|
| ドキュメントの種類 | オンボーディング、ADR、Runbook、API Doc等 |
| 書いてもらう仕組み | DoDに含める、テンプレート、コードの近くに |
| 品質維持 | 定期レビュー、Single Source of Truth |
| Docs as Code | Git管理、PRレビュー、自動化 |
チェックリスト
- チームに必要なドキュメントの種類を把握した
- ドキュメントを書いてもらう仕組みを理解した
- 品質維持の方法を学んだ
- Docs as Codeの原則を確認した
次のステップへ
次は「技術ブログとナレッジ共有」を学びます。チーム内だけでなく、社外にも技術を発信する方法を学びましょう。
推定読了時間: 30分