Skip to content

テクニカルライティング

はじめに

あなたの書いたドキュメントは誰かに読まれていますか? 多くの開発者は「コードが動けば十分、ドキュメントは後で」と考えがちです。その結果、新入社員はプロジェクトを理解できず、API連携はすべて口頭でのやり取りに頼り、半年後には自分でさえなぜそう設計したのか忘れてしまいます。

この章では、テクニカルライティングの核心的な手法を習得し、ドキュメントが実際に読まれ、理解され、役立つものにします。

この記事で何を学ぶか?

内容主要概念
第 1 章ドキュメントの種類と構造異なるドキュメントの書き方
第 2 章ライティングの原則明確、正確、簡潔
第 3 章実践的な比較良いドキュメント vs 悪いドキュメント
第 4 章ドキュメントの保守ドキュメントを最新に保つ

この章を終えると、構造が明確で、内容が正確で、保守しやすい技術ドキュメントを書けるようになります。


0. 全体像:なぜテクニカルドキュメントが重要なのか?

コードはコンピュータに「どうやって」を伝え、ドキュメントは人間に「なぜ」を伝えます。ドキュメントのないプロジェクトは、説明書のない家電のようなもの——動くけれど、使い方は推測するしかありません。

良いドキュメントの価値

  • コミュニケーションコストの削減:新メンバーが自力でオンボーディングでき、繰り返しの説明が減る
  • 意思決定のコンテキストの保存:「何」だけでなく「なぜ」を記録する
  • プロジェクトの信頼性向上:良いドキュメントはオープンソースプロジェクトの顔
  • コラボレーションの加速:APIドキュメントにより、フロントエンドとバックエンドの並行開発が可能に

1. ドキュメントの種類と構造

下のインタラクティブコンポーネントで、異なる種類のドキュメントの標準構造を学びましょう:

Documentation structure template - click to switch document types
1Project name + one-line description
2Quick start
3Features
4Usage examples
5Contributing + license

1.1 一般的なドキュメントの種類

ドキュメント種類対象読者主要な内容
README全員プロジェクトの概要、使い方、貢献方法
API ドキュメントAPI利用者エンドポイント、パラメータ、レスポンス、エラーコード
アーキテクチャドキュメント開発チームシステム設計、技術選定、データフロー
チェンジログユーザー/開発者バージョンの変更、追加/修正/破壊的変更
コントリビューションガイド貢献者開発環境、コード規約、PRプロセス

1.2 README の黄金構造

良い README には以下を含めるべきです:

  1. プロジェクト名 + 一言説明:3秒で何かわかるようにする
  2. クイックスタート:最小のステップで動かせるようにする
  3. 機能の特徴:コアセールスポイント
  4. インストール方法:詳細な環境要件とインストール手順
  5. 使用例:コピー&ペーストで使えるコード
  6. コントリビューションガイド:参加方法
  7. ライセンス:法務情報

2. ライティングの原則

2.1 明確さを最優先

markdown
<!-- 悪い例:曖昧で不明確 -->
この関数はデータを処理します。

<!-- 良い例:具体的で明確 -->
生の注文データを請求書形式に変換し、税計算と通貨変換を含めます。

2.2 読者志向

ドキュメントを書く前に問いましょう:誰がこのドキュメントを読むのか?どんな情報が必要か?

  • 初心者向け:用語を説明し、完全な例を提供する
  • 経験豊富な開発者向け:要点に直行し、APIリファレンスを提供する
  • 非技術者向け:例えを使い、専門用語を避ける

2.3 コード例は最良のドキュメント

markdown
<!-- 悪い例:テキストの説明のみ -->
createUser 関数を呼び出し、ユーザー名とメールアドレスのパラメータを渡す。

<!-- 良い例:実行可能な例 -->
const user = await createUser({
  name: '田中太郎',
  email: 'tanaka@example.com'
})
// 戻り値: { id: 'u_123', name: '田中太郎', createdAt: '2025-01-15' }

3. 実践的な比較

下のインタラクティブコンポーネントで、良いテクニカルライティングと悪いテクニカルライティングを比較しましょう:

Technical writing comparison - click to switch cases
❌ Poor writing
// Process data
function process(d) {
  // ...
}
✅ Better writing
/**
 * Convert raw order data into invoice format.
 * @param {Order} order - Raw order object
 * @returns {Invoice} Formatted invoice
 * @throws {ValidationError} When order data is incomplete
 */
function toInvoice(order) {
  // ...
}
Improvement points:Explain why, not just whatDocument parameter and return typesDescribe exceptional cases

3.1 コミットメッセージの規約

# 悪い例
fix bug
update code

# 良い例(Conventional Commits)
fix: Safariでのログインページの白画面問題を修正
feat: PDF形式レポートの一括エクスポートをサポート
docs: API認証セクションのサンプルコードを更新

3.2 コメントの技術

javascript
// 悪い例:「何をしているか」を説明している(コードがすでに語っている)
// 配列をループする
for (const item of items) { ... }

// 良い例:「なぜ」を説明している
// 逆順でループする。要素を削除する際、正順だと次の要素がスキップされるため
for (let i = items.length - 1; i >= 0; i--) { ... }

4. ドキュメントの保守

4.1 Docs as Code

ドキュメントとコードを同じリポジトリに置き、同じワークフローで管理する:

  • ドキュメントの変更はコードと一緒にPRで提出する
  • CIでドキュメントのフォーマットとリンクの有効性をチェックする
  • バージョンリリース時にドキュメントも同時に更新する

4.2 ドキュメントの劣化を防ぐ

問題解決策
ドキュメントが古くなっているコード変更時にドキュメントの更新を強制する(PRチェック)
誰もメンテナンスしないドキュメントの担当者を指名する
内容が重複している単一の情報源とし、他ではリンクを参照する

5. AI 活用:大規模言語モデルでドキュメント品質を向上

LLMはテクニカルライティングの分野でほぼ「生まれながらの才能」を持っています——ドキュメントの生成、表現の改善、コンテンツの翻訳はすべて得意分野です。

5.1 API ドキュメントの生成

プロンプト

以下の Express ルートコードに基づいて、完全なAPIドキュメントを生成してください:
- エンドポイントのパスとメソッド
- リクエストパラメータ(パスパラメータ、クエリパラメータ、リクエストボディ)と型
- 成功時とエラー時のレスポンス例
- curl を使用した呼び出し例

[ルートコードを貼り付け]

5.2 テクニカルライティングの改善

プロンプト

以下の技術ドキュメントの表現を改善してください:
1. 簡潔で明確な言葉を使い、冗長な表現を削除
2. 受動態を能動態に置き換える
3. 専門用語の正確さを保つ
4. 必要なコード例を追加する
元の意味を保ちつつ、表現の質のみを改善してください。

[ドキュメントの内容を貼り付け]

5.3 README の生成

プロンプト

以下のプロジェクト情報に基づいて、高品質な README.md を生成してください:
- プロジェクト名:[名前]
- 一言説明:[説明]
- 技術スタック:[一覧]
- コア機能:[一覧]

含めるべき内容:プロジェクト紹介、クイックスタート、機能の特徴、
インストール手順(コード付き)、使用例、コントリビューションガイド、ライセンス。

AI 活用のアドバイス

AIが生成したドキュメントの技術的な詳細は必ず確認してください——存在しないAPIパラメータや誤った戻り値をでっち上げる可能性があります。常に実際のコードと照合してください。


6. まとめ

  1. タイプの適合:異なるドキュメントには異なる構造と書き方がある
  2. 明確さを最優先:具体的、正確、読者志向
  3. 例の重視:良いコード例は千の言葉に勝る
  4. 継続的な保守:Docs as Code — プロジェクトと共にドキュメントも進化させる

最後に

ドキュメントを書くことは時間の無駄ではなく、未来の時間を節約することです。今日30分かけて書いたドキュメントが、10人それぞれ1時間を節約できるかもしれません。良いドキュメントはチームへの最高の投資です。


さらに学ぶために

  • ライティングガイド:Google の Technical Writing コースは無料で実用的です。
  • ドキュメントツール:VitePress、Docusaurus、GitBook などのモダンなドキュメントフレームワーク。
  • API ドキュメント:OpenAPI/Swagger 仕様はAPIドキュメントの業界標準です。
  • 実践のアドバイス:自分のプロジェクトに良い README を書くことから始めましょう。