初期のアナリストは、要件を個別に記録し、それらの間の相互関係を常に考慮していませんでした。これは小規模なシステムには機能しましたが、大規模なITプロジェクトでは要件間の関係の複雑さが急激に増します:データ依存関係、整合性の欠如、矛盾、そして失敗のリスクを高めるカスケード変更が発生します。
問題 — 要件間の関連性の欠如または曖昧さは、機能ブロックの見逃し、バグ、タスクのブロッカー、およびチームの協調の欠如を引き起こします。一つの要件が変更されると、それに関連するものが遅れ、製品の動作に問題を引き起こすことが多いです。
解決策 — 依存関係の明確なモデリングとトレース(要件依存関係マッピング)の実践を使用します。これには、ダイアグラム(たとえば、トレースビリティマトリックス、ERD)、専門ツール(Jama、Jiraリンク、DOORS)、"親"および"子"要件を明確に文書化し、それらがテストシナリオ、アーキテクチャ、ユーザーストーリーに与える影響を記録することが含まれます。すべての依存関係を透明に文書化し、関連する要件に関する変更ごとに利害関係者に通知することが必要です。
主な特徴:
要件に依存関係を明記しないとどうなりますか?
回答: 重要な関係が見逃される可能性があります(たとえば、ある要件は別の要件なくしては実現できない)、ブロッカーが発生し、顧客の不満が高まり、テストへの追加負担が発生します。
依存関係マップを開始時に一度作成するだけで十分ですか?
回答: いいえ。依存関係マップはプロジェクトのライフサイクル全体で最新の状態を維持する必要があります。任意の要件の変更は、それに関連するすべてに影響を与える可能性があります。
依存関係は直接的なもの(AはBに依存)だけですか?
回答: いいえ。実際のシステムでは、しばしば交差的、循環的、トランザクショナルな依存関係が存在し、また共通リソースや統合を介しての影響が伴います。
ネガティブケース: eコマース向けプロジェクトで異なる決済チャネル間の依存関係が反映されませんでした。あるモジュールの変更により障害が発生し、一部の注文が処理されませんでした。
メリット:
デメリット:
ポジティブケース: 各ビジネス要件に関連する技術要件を文書化し、トレースビリティマトリックスを作成しました。変更時には自動的にすべての利害関係者に通知が送信されました。
メリット:
デメリット: