ドキュメンテーションは機能である

ドキュメンテーションは製品とは別物ではありません。製品の一部なのです。

多くの開発者が、以下のような欠陥のあるパターンに従っています:

  • 機能を作る。
  • 機能をテストする。
  • 機能をリリースする。
  • 機能をドキュメント化する。

ユーザーはコードを体験するわけではありません。彼らが体験するのは、インターフェース、ワークフロー、そしてドキュメンテーションです。ユーザーにとって、ドキュメンテーションは一つの「機能」なのです。

作成者は、すでに製品を理解しているため、ドキュメンテーションを疎かにしがちです。なぜその決定を下したのか、自分なら分かっています。APIがどう動くのかも、ショートカットも知っています。

ユーザーはそうではありません。あなたにとって当たり前のことが、彼らにとっては不可解なことなのです。

同じ質問が繰り返されるなら、それを「ドキュメンテーションの負債」として扱いましょう。もし同じ質問が2回繰り返されたなら、問題があります。製品が分かりにくいか、ドキュメントが不完全かのどちらかです。時にはAPIを修正する必要もありますが、多くの場合、ドキュメントを修正する必要があります。

優れたドキュメンテーションは摩擦を減らします。そして、以下の問いに素早く答えてくれます:

  • これは何か?
  • なぜ使うべきか?
  • どうやって始めるのか?
  • 最善のアプローチは何か?
  • シンプルな例は何か?

目標は網羅性ではありません。目標は勢い(モメンタム)を生み出すことです。

優れたドキュメンテーションは、パターンと意図を教えます。なぜそのフレームワークが特定の仕組みで動いているのかを説明します。これにより、ユーザーの生産性が向上します。

ドキュメンテーションは、目立たない形でビジネスに影響を与えます:

  • 採用率
  • オンボーディングの速度
  • サポートコスト
  • コミュニティの成長
  • 開発者体験

優れたドキュメントの影響は、すぐには分かりにくいものです。しかし、不十分なドキュメントの欠如には、即座に気づくことになります。

ドキュメンテーションは、あなた自身のためでもあることを忘れないでください。それは、未来の自分に向けて知識を保存するものです。決定事項を記録しておくことで、数ヶ月後に答えを再発見する手間を省けます。

製品の品質とドキュメンテーションの品質は連動しています。

  • 分かりにくいソフトウェアには、より多くのドキュメントが必要です。
  • 分かりやすいソフトウェアには、それほど必要ありません。
  • 優れたドキュメンテーションは、悪い設計を浮き彫りにします。

ドキュメンテーションを後付けの作業として扱うのはやめましょう。明確さを強制するための手段として活用してください。明確さは設計を向上させ、向上した設計は製品を向上させます。

出典: https://dev.to/stinklewinks/documentation-is-a-feature-228n