Article

プロジェクト失敗事例に学ぶ:要件定義ミスが招いたトラブルと改善策

高田晃太郎
プロジェクト失敗事例に学ぶ:要件定義ミスが招いたトラブルと改善策

大規模ITプロジェクトの約45%が予算超過し、成果価値は平均で56%下振れするという報告がある¹。McKinseyの分析やStandish GroupのCHAOSレポートを突き合わせると¹,⁷、失敗は実装工程の技術力だけでは説明できない。編集・統合した複数データの傾向を見ると、起点は要件定義の曖昧さ・欠落・認識の非対称に集中している²,³。仕様書のページ数や図の枚数ではなく、意思決定の根拠と検証可能性、そして非機能要件の具体性が、破綻と成功を分ける境界線になっている³。

ここで言う要件は、ユーザーストーリーやPRD(Product Requirements Document)の本文に限らない。スコープの境界、依存関係、SLO/SLI(目標と計測値。たとえば可用性や遅延の合意値)、レギュレーション準拠、移行条件、ロールバック戦略までを含む作動条件の集合だ⁴。図が美しくても、その裏にある前提や選択肢の却下理由が言語化されていないと、プロジェクトは**「正しく作って、間違ったもの」**を量産する。この前提に立ち、失敗のメカニズムを分解し、実例で落とし穴を示し、再発を防ぐための実装可能な型を提示する。

要件定義ミスはなぜ起きるのか──構造的な原因

まず認識したいのは、要件定義ミスは個人の注意不足ではなく、構造的な情報欠落の積み重ねで発生する点だ。市場機会の仮説、事業KPI、業務プロセス、既存システムの制約、法規制、顧客の期待値、組織のデプロイ能力が同時に絡むため、単一のドキュメントで完結させるのは難しい。研究データでは、要件工程での欠陥を運用後に是正するとコストは数十倍に膨らむとされる²,⁶。Boehm曲線(上流での修正ほど安く済むという経験則)の示す通り、早期の検証可能性を上げるほど、後戻りのダメージは指数的に抑制できる⁶。

現場で繰り返し観測するのは、曖昧語の放置、非機能要件の抜け、依存の過小評価、意思決定ログの不在、優先順位基準の未定義という五つのパターンだ。曖昧語とは「高速」「柔軟」「十分」「簡単」といった言葉で、チームごとに解釈が揺れる。非機能の抜けは、可用性、遅延、スループット、セキュリティ、監査、運用性、コストの各項目に具体的な数値や方法がない状態を指す³,⁴。依存の過小評価は、外部APIのレート制限やバージョン移行といった外力を計画に織り込まないことから始まる。意思決定ログがなければ、仕様変更時に過去の背景を再現できず、議論はゼロからのやり直しになる。最後に、優先順位の基準が明文化されていないと、緊急と重要が衝突したときに連続的な判断ができない。

こうした欠落は、会議時間の不足よりも、形式知への落とし込み手段がないことが原因であることが多い。ゆえに対策は、作法の教育とツールの整備、レビューのゲート化をセットで導入することになる。言い換えれば、「書き方」を揃え、「決め方」を記録し、「確かめ方」を速くするの三本柱を同時に進めるのが最短距離だ³。

要件定義の失敗事例から見える典型的な落とし穴

国内ECの再構築案件で、在庫同期の要件が「ほぼリアルタイム」と記載されていたケースがある。開発側は5分以内を想定し設計したが、事業側は30秒以内を期待していた。ローンチ後、セール時に在庫超過販売が発生し、顧客対応と払い戻しで想定粗利の一部が消えた。調査すると、外部WMS(Warehouse Management System)のAPIのレート制限により、30秒の同期を保証するには同時接続数を増やす別契約が必要だった。つまり曖昧語が、隠れたコストと信頼毀損を連鎖させた。この種の事故は、SLIを数値で合意し、外部依存の制約と費用を要件に織り込んでいれば防げる⁴。

別のB2B SaaSで、権限制御の粒度が「柔軟に設定可能」とだけ記されていた。導入直前、法務・監査のレビューで操作ログと承認経路の追跡要件が加わり、スキーマの再設計と監査ログの追記に追われた。結果的にリリースは2カ月遅延し、パイプラインの大型案件が延期となった。ここでは非機能要件、とくにセキュリティと監査可能性の具体化が遅れたことが致命傷になった。ローンチのタイミングで大型案件が寄与する前提を置くなら、早期にコンプライアンスの観点を巻き込むべきだ³。

もう一つはデータ移行でのキー設計の誤りだ。旧システムのユニークキーが現行ではユニークでないことに誰も気づかず、移行バッチで衝突と欠損が発生した。顧客通知と再計算で数週間を要し、CSの負荷が爆発した。根因は現物データを使った移行リハーサルの不足にあった。平均ケースに合わせた設計は綺麗に動くが、長い尻尾を持つ現実のデータは平均値に収まらない。統計的に見ても、外れ値はプロダクトの信頼を最も速く傷つける。ゆえに、移行要件は「ステージングでの現物近似データによる二回以上のドライラン成功」を通過条件にするのが合理的だ。

これらの事例に共通するのは、要件の文章量ではなく、検証可能性と前提・制約・代替案の記録が足りない点に尽きる。つまり、問題は書いていないことに潜む。この前提で、改善策を仕組みとして埋め込む。

ミスを減らす要件定義の実装──今日から導入できる型

まず、意思決定のログを強制する。軽量なADR(Architecture Decision Record。アーキテクチャや重要判断の記録)を使い、採用案と却下案、その根拠と影響範囲、レビューアを一枚で残す⁵。テンプレートは次のようになる。

ADR-012: 在庫同期のSLI定義
Status: Accepted
Context: ECとWMS間の在庫同期。ピークトラフィック時の注文集中が想定される。
Decision: 在庫差分同期のSLIをP95=30秒以内、P99=60秒以内と定義。WMS側の同時接続数を契約で20に引き上げる。
Consequences: API契約増額、同期処理のバルク最適化、監視ダッシュボードの閾値設定が必要。
Alternatives: 5分同期(粗利毀損リスク増)、完全イベント駆動(実装期間伸長)。
Reviewers: BizLead, SRE, Finance
Date: 2025-08-30

次に、曖昧語を撲滅するための用語集をPRDに同梱する。「高速」「低遅延」「安全」「拡張性」といった言葉は、客観値に置換する。たとえば「低遅延」は「P95(95%が収まる値)のエンドツーエンド遅延を150ms以下」と明記し、測定方法を合わせて書く。測れないものは管理できない、という原則を全員の共通言語に変える⁴。

非機能要件はチェックリスト化して、各項目に数値と検証方法を紐づける。可用性なら「月間可用性99.9%、測定は外形監視、除外条件はメンテナンスウィンドウ90分まで」。性能は「P95レスポンス300ms以下、スループットはRPS(1秒あたりのリクエスト数)200、バックグラウンドジョブのバッチ時間は30分以内」。セキュリティは「OWASP ASVSレベル2を満たす、全操作ログの保持期間は365日」。運用は「ダッシュボード4枚、アラートは重要10件以内、一次対応Runbookの所要時間は15分以内」。コストは「ピーク時の1時間あたりの運用コスト上限を5万円」といった形で、数字と測定を一体で置く³,⁴。

検証可能性を早めるには、デュアルトラックで探索と実装を並走させる。探索側はプロトタイプと実現性(フェーズビリティ)検証に責務を限定し、実装側はThin Slice(本番適用可能な最小単位)で積む。顧客影響が大きい領域では、事前に実データ近似のサンドボックスを用意し、バックフィルやロールバック手順を現実に動く形で確認する。テスト方針も要件と一緒に定義する。ここに「ユニット、統合、E2E(エンドツーエンド)、契約、負荷、セキュリティ、移行、フェイルオーバー」の観点を含め、それぞれの通過条件を文章で置く。例えば在庫同期機能なら、ピーク時の負荷で30分間、P95が30秒を超えないこと、WMSの一時障害からの自己回復が5分以内であること、重複イベントが発生しても最終整合が保たれること、といった振る舞いを記述する⁴。

依存関係は「外力のカタログ」として見える化する。外部API、社内プラットフォーム、データレイク、CI/CD、運用体制、意思決定の承認経路までを列挙し、それぞれにSLO、責任者、障害時の連絡方法、費用や契約の前提を紐づける。これにより、要件の変更がどの外力に波及するかが直観的に把握できる。契約や費用が絡む変更は、必ずFinanceのレビューをゲートに設定して、技術的に可能でも、経済的に不合理な選択を避ける⁵。

成果の定義は、出荷ではなくアウトカムで握る。コンバージョン率、CS応答時間、在庫引当の精度、解約率など、事業KPIに直結する指標に、改善幅と観測期間をひも付ける。プロダクトメトリクスとオブザーバビリティはPRDに寄り添うべきだ。ダッシュボードやアラート条件を仕様に格上げし、ローンチ条件の一部にする。こうして、「動いた」から「効果があった」への責任の移し替えを制度化する⁴。

ツール面では、OpenAPIやAsyncAPIを先行定義して、契約テストを軸に内外の整合を取る。スキーマが先にあれば、モックで早期に統合の痛みが見える。PRDの更新とスキーマの差分は同じPRで扱い、レビュー観点の遊離を防ぐ。意思決定の文脈はチケットに短く引用し、PRDとADRに逆リンクを付ける。CIでは「PRD差分があるPRに未承認のADRがある場合はマージ不可」というガードを入れ、手続きではなく自動化で守る⁵。

組織へ根付かせる運用──ゲート、責任、教育

仕組みは導入して終わりではない。品質を保つのは人と習慣だ。まず、ゲートを明確にする。Discovery Done、Design Done、Build Done、Launch Readyといった通過点ごとに、必要なアーティファクトとレビューの責任者を定義する。通過判定の材料は、PRD本体、ADR、非機能要件のチェック、テスト証跡、運用Runbook、ダッシュボードのスクリーンショットなど、観念ではなく成果物に限る。会議は判定のためにあり、議論のために開かないと決める³。

次に、責任の所在を曖昧にしない。ビジネスオーナーはアウトカムとKPI、プロダクトマネージャーは問題定義と選択肢、アーキテクトは制約の設計とトレードオフの記録、エンジニアリングマネージャーは実行可能性と人員計画、SREは運用性とSLO、セキュリティはリスクとコントロール、データは移行と品質、CSは顧客影響とオペレーションの連携、といった守備範囲を明示する。責任は重なってよいが、最終決定者は一人にする³。

教育は短距離走ではなく、演習で定着させる。実際の失敗事例を匿名化して持ち寄り、PRDとADRを書き直す演習を繰り返す。曖昧語を数値に直す練習、非機能チェックの穴埋め、依存の洗い出し、テスト観点の列挙、ダッシュボードの骨子作りなど、手を動かす内容にする。ツールの使い方を教えるより、判断の筋道を身体化するほうが効果が高い。

導入の効果は、リワーク率、リードタイム、障害件数、ローンチ後30日のアラート件数、SLO違反時間、仕様変更時の議論時間の短縮、そして事業KPIの改善で追う。一般的な報告例でも、要件定義の型とゲートを整えることでリワークや初期障害の低減が観測されることがある。組織の成熟度に依存するが、出荷速度を犠牲にせずに品質を上げる方法はある

関連リソースと深掘り

意思決定ログの書き方は、ADRの実践記事が参考になる。非機能要件の網羅は簡単ではないが、導入の近道になる。探索と実装の並走の実例が役立つ。品質ゲートや自動化で具体的な設定例を解説している。

まとめ──「正しく作る前に、正しいもの」を定義する

要件定義のミスは、才能や根性で回避できない。検証可能な言葉で合意し、意思決定の筋道を記録し、外力と制約を見える化し、早く小さく確かめるという作法を、チームの標準に落とすしかない。曖昧語を数値に置換し、非機能に数字と方法を付け、ADRでトレードオフを残し、テスト戦略とダッシュボードをPRDに内蔵する。これらをゲートと自動化で守ると、失敗の芽は小さいうちに摘める³,⁴,⁵。

明日から何を変えるか。まず一枚のADRから始めよう。次に、直近のPRDで曖昧語を三つ、数値に置き換えてみよう。最後に、ローンチ条件に「ダッシュボードとSLOの確認」を加えてほしい。小さな一歩が、やがて大きなリワーク削減と信頼の積み上げにつながる。あなたのプロジェクトは、次にどの前提を数値に変えるだろうか。

参考文献

  1. McKinsey & Company. Delivering large-scale IT projects on time, on budget, and on value. 2012. https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/delivering-large-scale-it-projects-on-time-on-budget-and-on-value
  2. Itakura M, Tamai T. How Does Requirements Quality Relate to Project Success or Failure? In: 15th IEEE International Requirements Engineering Conference (RE 2007). 2007. https://ieeexplore.ieee.org/document/4384169
  3. U.S. Government Accountability Office (GAO). Information Technology: Critical Factors Underlying Successful Major Acquisitions (GAO-12-7). 2011. https://www.gao.gov/products/gao-12-7
  4. Google SRE Team. Service Level Objectives. In: Site Reliability Engineering Book. 2016. https://sre.google/sre-book/service-level-objectives/
  5. Rupp HW. Why you should be using architecture decision records to document your project. Red Hat. 2021. https://www.redhat.com/architect/architecture-decision-records
  6. Boehm BW. Software Engineering Economics. Prentice Hall; 1981.
  7. The Standish Group International, Inc. CHAOS Report. Various years. https://www.standishgroup.com/