要件定義で作成すべき5つの重要ドキュメントと失敗しない作り方を解説

  • URLをコピーしました!

要件定義がどういうものかは大体わかったのですが、ドキュメントは何を作ればいいんでしょう

要件定義で必要なドキュメントは数多ありますが、最低限これだけは必要というものが5つあります。今日はその解説をしていきましょう

Contents

最低限作成するべきドキュメント

要件定義は規模やどのようなシステムかによって作成するべきドキュメントは異なりますが、どんなシステムであってもこれらのドキュメントは作成しなければなりません。

  • 業務要件定義書
  • 機能要件定義書
  • 非機能要件定義書
  • データ要件定義書
  • 外部インターフェース要件定義書

業務要件定義書

業務要件定義書は、システム化プロジェクトの根幹となる重要なドキュメントです。このドキュメントでは、システム導入の目的や事業上の背景を詳細に説明し、現状の業務フローとその中で発生している具体的な課題を明確に定義します。また、これらの課題に対してシステム化によってどのように解決を図るのかという方向性も示します。

主な記載項目は次のとおりです。

  • プロジェクトの目的と背景
  • 現状の業務フローと課題
  • システム化後の業務フロー
  • 期待される効果

ここで出てくる「現状の業務フロー」とはAs-Is業務フロー、「システム化後の業務フロー」とはTo-Be業務フローのことで別の記事で解説していますのでぜひご覧ください。

機能要件定義書

システムに必要な機能を詳細に記述するドキュメントです。具体的には、各機能の目的、動作の仕組み、処理の流れ、そして制約条件などを明確に定義します。このドキュメントを通じて、ユーザーが新しいシステムで実現できる操作や活用方法を具体的に理解できるようになります。
また、開発チームにとっては、実装すべき機能の範囲と要件を正確に把握するための重要な指針となります。
主な記載項目は次のとおりです。

  • システムの機能一覧
  • 画面設計書(画面遷移図、画面レイアウト)
  • 入力項目定義
  • 出力帳票設計

非機能要件定義書

システムの品質や性能に関する要件を定義するドキュメントです。具体的には、システムの安定性、信頼性、処理速度、運用効率などの技術的な側面について、明確な基準と目標値を設定します。これらの要件は、システムの実運用における重要な品質指標となり、ユーザー満足度に直接影響を与える要素となります。
主な記載項目は次のとおりです。

  • 性能要件(レスポンスタイム、同時接続数など)
  • 可用性要件(稼働時間、バックアップ方針)
  • セキュリティ要件
  • システム環境要件

非機能要件については別の記事で解説していますのでご覧ください。

データ要件定義書

システムで扱うデータの構造や関連性を定義するドキュメントです。このドキュメントでは、データベースのテーブル設計やデータ間の関係性を明確にし、システムが効率的にデータを管理・処理できるような設計を行います。また、データの整合性や一貫性を確保するための制約条件なども定義します。
主な記載項目は次のとおりです。

  • エンティティ定義
  • データモデル図(ER図)
  • データ項目定義
  • データ量の見積

外部インターフェース要件定義書

他システムとの連携に関する要件を定義するドキュメントです。このドキュメントは、システム間の円滑な情報交換と連携を実現するための重要な設計図となります。具体的には、外部システムとのデータ連携方式(同期・非同期)、通信プロトコル(REST、SOAP、FTPなど)、データ形式(JSON、XML、CSVなど)、エラー処理の方針と再試行メカニズムなどの技術的な詳細を明確に定義します。また、システム間の連携タイミングや頻度(リアルタイム、バッチ処理など)、データの整合性確保の方法、セキュリティ要件(認証・認可方式、暗号化方式など)も含め、スムーズな連携を実現するための重要な要件を網羅的に記載します。さらに、外部システムの可用性や性能要件、障害発生時の対応方針なども考慮に入れ、安定した連携を実現するための具体的な施策についても定義します。
主な記載項目は次のとおりです。

  • 連携システムの一覧
  • インターフェース方式
  • データフォーマット
  • 連携タイミング

要件定義ドキュメント作成のポイント

要件定義においてこれらドキュメントを作成するときは以下を心がけます。

  • 明確性と具体性
    要件定義では、曖昧さを排除し、明確で具体的な記述を心がけることが非常に重要です。例えば、「だいたい」「おおよそ」「ある程度」といった不明確な表現は避け、代わりに「3秒以内」「99.9%以上」「1日あたり1000件」のように、具体的な数値や明確な条件を用いて記述します。また、要件の記述においては、実現可能性や測定可能性を常に意識し、後工程での解釈の違いが生じないよう、できるだけ詳細な条件や制約を明記することが推奨されます。
  • 一貫性の確保
    複数のドキュメント間で矛盾が生じないよう、用語の定義と使用方法を統一し、関連する要件間の相互参照を適切に行います。特に、業務用語や技術用語については、プロジェクト全体で共通の用語集を作成し、一貫した表現を維持することが重要です。また、要件の変更や追加が発生した場合は、関連するすべてのドキュメントを見直し、整合性を確保する必要があります。
  • トレーサビリティの確保
    要件の追加・変更履歴を適切に管理し、各要件が追加された背景や経緯、ビジネス上の必要性を明確に記録します。これにより、将来的な要件の見直しや変更が必要になった際に、その要件が導入された理由や意図を正確に把握することができます。また、要件間の依存関係や影響範囲も追跡できるようにすることで、変更による影響を適切に評価し、リスクを最小限に抑えることが可能になります。
  • ステークホルダーとの合意形成
    作成したドキュメントについては、必ずステークホルダー全員とのレビューセッションを実施し、内容の確認と承認を得る必要があります
    ここで認識の齟齬が生じたまま先の工程に進み、最後のユーザ受入テストですべてがひっくり返される場面をいくつも見ています。
    レビューでは、要件の解釈や優先順位、実現可能性などについて詳細な議論を行い、認識の齟齬が生じていないことを慎重に確認します。また、レビュー時に出された意見や懸念事項は適切に記録し、必要に応じてドキュメントに反映することで、プロジェクト全体での合意形成を確実なものとします。

    あまり気持ちのいいものではありませんが、レビューでクライアントが言ったこと、指示など詳細に記録しましょう。議事録という形に残してクライアントに承認をもらうことを忘れずに。
    いざ揉めたときに証拠になります。それがないと最悪これまでかかった費用を払ってもらえないうえに、改修の費用もこちらもちという事態になりかねません。

    クライアントの担当者も会社を背負っています。自分のせいでプロジェクトが破綻したとなればどんな問題に発展するか分かりません。必死で自分を守ろうとします。それに対抗するにはクライアントが承認した議事録が最大に効果を発揮します

要件定義でよくある失敗とその対策

筆者がこれまで自分が経験したり見聞きしてきたことを振り返ると代表的な失敗は次の3つに集約されると思います。

  • 要件の抜け漏れ
    チェックリストを活用し、システムに必要な要件を漏れなく定義します。具体的には、業務フロー、データ処理、セキュリティ、性能要件など、各カテゴリーごとに詳細な確認項目を設定し、それぞれについて慎重に検討を行います。また、複数の視点からの確認が重要なため、開発者、業務担当者、システム管理者など、異なる役割を持つメンバーでレビューを実施することで、より確実に見落としを防ぎます。さらに、過去のプロジェクトでの経験や教訓を活かし、チェックリストを定期的に更新・改善することで、要件定義の品質向上を図ります。
  • 要件の曖昧さ
    具体的な数値や条件を明記し、誰が読んでも同じ解釈になるように記述することが重要です。
    例えば、「システムの応答時間は3秒以内」「バックアップは1日1回午前2時に実施」のように、明確な基準を示すことで、開発者やステークホルダー間での認識の違いを防ぐことができます。また、複雑な要件については、フローチャートやワイヤーフレーム、ユースケース図などの図表を活用し、視覚的な理解を促進することが効果的です。さらに、具体的な画面イメージやデータサンプルを提示することで、最終的な成果物のイメージを共有し、要件の正確な伝達を図ります。
  • ステークホルダーとの認識齟齬
    定期的なレビューミーティングを設定し、要件の確認と合意形成を慎重に進めていきます。ミーティングでは、各ステークホルダーの視点から要件を詳細に検討し、認識の違いがないかを丁寧に確認します。また、議論の内容や決定事項を正確に記録し、後で参照できるようにすることも重要です。特に重要な要件については、プロトタイプやモックアップを作成して視覚的に確認することで、より具体的なイメージの共有と理解の促進を図ることが効果的です。さらに、必要に応じて実際のユーザーにプロトタイプを使用してもらい、実用面での課題や改善点を早期に発見することも検討します。
まとめ

要件定義は、プロジェクトの成功を左右する重要なフェーズです。上記の5つのドキュメントを適切に作成し、ステークホルダーと合意形成を図ることで、後工程でのリスクを最小限に抑えることができます。

また、要件定義は一度で完璧にできるものではありません。プロジェクトの進行に応じて継続的に見直しと更新を行い、より良いシステムの実現を目指すことが重要です。

よかったらシェアしてね!
  • URLをコピーしました!
Contents