誰がドキュメントを読むのですか?ドキュメントは何に使用されますか?これらは答えるべき最も重要な質問です。たとえば、メンテナンス開発者向けのドキュメントは構造に焦点を当てるのに対し、製品と統合する開発者向けのドキュメントはWebサービスとデータベース構造に焦点を当てます。
一般に、必要なだけドキュメントを作成し、それ以上は行いません。多くの組織はドキュメントが必要であると誰かが主張しているため、ドキュメントが必要ですが、ドキュメントはほこりを集めることになります。
人々が実際にドキュメントを使用すると仮定して、コードとデータベースを最小レベルにキャプチャしようとしないでください。開発者は、特徴のコードを調べます。代わりに、コードでは明らかではない詳細に焦点を当てます。例:
- ユースケース製品が満たしています。これは、製品の年齢を考えると難しいかもしれませんが、製品の意図を把握することは、非技術的な読者やテスターにとって重要なコンテキストを与えます。市場の競合他社は誰ですか?製品の範囲から除外されるものはありますか?
- 明確な非機能要件。たとえば、製品は特定のボリュームを処理するように作成されていましたか?データは何歳になりますか?キャッシングはどこで使用されますか?ユーザーはどのように認証されますか?アクセス制御はどのように機能しますか?
- コンテキストダイアグラム監視など、他のデータベースなどのシステムは、認証元、バックアップとの相互作用を示します。
- (既知の場合)リスクと、それらがどのように軽減されたかを決定表とともに確認します。振り返ってみると、これはおそらく困難ですが、多くの場合、設計に影響を与える重要な決定があります。知っていることをすべてキャプチャします。
- 一般的な設計パターンまたは設計ガイドライン。たとえば、データベースにアクセスする標準的な方法はありますか?コーディングまたは命名の標準はありますか?
- 通常、フローチャートまたはUMLアクティビティまたはシーケンス図を使用したクリティカルコードパス。プロジェクトには何もないかもしれませんが、これらは通常、ビジネスユーザーが明確にしたものです。
この情報がすべて入手できない場合でも、今すぐ開始してください。あなたの後に来る開発者はあなたに感謝します。
優れた自動化された単体テストまたはテストケースも有用なドキュメントになりますが、それほど技術的な人にはアクセスしにくいものです。
ドキュメントを含めるために文化的変化を起こす必要があるようにも聞こえます。小さく始めますが、理想的には、少なくとも最低限のレベルのドキュメントが作成されるまで、プロジェクトを「完了」させないでください。上記はあなたが制御できるものであるため、これはおそらく最も難しいステップです。これは、他の人が買う必要があるものです。ただし、特にやりがいのある次のプロジェクトに優れたドキュメントが付属している場合は、最もやりがいがあります。