システム開発を検討しているものの、要件定義という言葉を聞いてもどこから手をつければよいか分からない、という担当者は少なくありません。
実は、Standish GroupのCHAOS Reportによれば、システム開発プロジェクトの成功率は31%にとどまり、失敗原因の半数以上が要件定義フェーズに起因するとされています。
要件定義を正しく理解し、適切に進めることが、開発プロジェクトの成否を左右する最大のポイントです。
この記事では、要件定義の基本概念から進め方、失敗しないためのポイントまで、中小企業の担当者が発注前に把握しておくべき知識を体系的に解説します。
AI・DX支援
AI活用・業務効率化、
専門家に相談してみませんか?
DimeBizを運営するFrom Downtown合同会社では、中小企業のAI導入・DX推進をご支援しています。
記事の内容に関するご質問もお気軽にどうぞ。
システム開発における要件定義とは何か
要件定義とは、システム開発において「何を作るか」を発注者と開発者が合意するための工程です。
システムに求められる機能・性能・制約条件を明確に文書化し、開発のゴールを具体的に定めます。
要件定義はシステム開発工程の中で最上流に位置し、その後に続く基本設計・詳細設計・開発・テスト・リリースすべての基盤となります。
この工程で認識がズレると、後工程に進むにつれて修正コストが指数関数的に増大します。
Barry W. Boehmのソフトウェア工学研究「Software Engineering Economics」(1981年)では、要件定義工程での修正コストを1とした場合、テスト工程では20倍、リリース後の運用段階では最大200倍になると示されています。
要件定義に十分な時間をかけることは、コスト削減につながる最も合理的な選択肢です。
要求定義との違いをおさえる
要件定義と混同されやすい言葉に「要求定義」があります。
両者の役割は明確に異なります。
要求定義は、発注者(ユーザー)側が「こういうシステムを使いたい」という要望を整理する作業です。
業務上の課題や実現したいことを発注者の言葉でまとめる段階であり、IT技術の知識がなくても行うことができます。
要件定義は、要求定義で挙げられた要望を受けて、開発者側が技術的な制約やコスト・スケジュールを踏まえながら「実際にシステムに組み込む条件」を具体化する作業です。
どこまでをシステム化するか、どのような機能として実装するかを文書化し、双方が合意する点が要求定義との最大の違いです。
中小企業の現場では、この二つを区別せずに進めてしまうことが認識ズレの原因になります。
「こうしたい」という要望を整理する段階と、「こう作る」と決める段階を分けて考えることが重要です。
要件定義が開発成功を左右する理由
IPAの資料「要件定義を巡る課題、経営者が考慮しなければならないポイント」によれば、工期遅延理由の55%が要件定義の問題に起因しています。
また、開発全工程での手戻りの多くが要件定義フェーズの不備から発生しており、要件定義の質がそのままプロジェクト全体のリスクの大きさを決定します。
要件定義が不十分なまま開発を始めると、途中で仕様変更が頻発します。
すでに作り込んだ機能を変更したり、一度設計した構造を見直したりする手戻り作業は、開発コストと納期を大幅に押し上げます。
要件定義は開発準備ではなく、プロジェクト成功の土台そのものです。
要件定義で定めるべき機能要件と非機能要件の項目
要件定義では、大きく「機能要件」と「非機能要件」の二軸を定めることが求められます。
この区分を理解することで、定義漏れを防ぎ、開発後のトラブルを減らすことができます。
機能要件:システムが「何をするか」を定める
機能要件とは、システムが提供する機能そのものを定義するものです。ユーザーがシステムを操作したときに、何ができるかを具体的に列挙します。
機能要件の代表的な項目は次のとおりです。
– ログイン・ログアウト機能および権限管理
– データの登録・検索・更新・削除(CRUD操作)
– 帳票・レポートの出力機能
– 外部システムとのデータ連携(CSVインポート/エクスポート、APIなど)
– 通知機能(メール送信、アラートなど)
– 画面一覧と各画面の役割・遷移フロー
機能要件を定める際は、「できるだけ使いやすく」「前のシステムと同じ感じで」といった曖昧な表現を避け、5W1H(誰が・何を・どのように・いつ・どのような条件で)で記述することが重要です。
抽象的な表現は開発者によって解釈が異なり、完成品が想定と違うという事態を招きます。
非機能要件:システムが「どのように動くか」を定める
非機能要件とは、システムの機能以外の品質や制約条件を定めるものです。
機能要件だけを決めても、実際の運用で必要な品質が担保されないケースがあります。IPA「非機能要求グレード2018」では、非機能要件を次の6項目に分類しています。
– 可用性: システムの稼働時間(例: 平日9〜18時の稼働保証)、障害発生時の復旧目標時間(RTO)
– 性能・拡張性: 同時接続ユーザー数、画面の応答時間(例: 3秒以内)、将来的なデータ量の増加への対応
– 運用・保守性: バックアップの頻度、障害発生時の対応体制、ログの保存期間
– 移行性: 既存システムからのデータ移行方法、移行後の並行稼働期間
– セキュリティ: 認証方式(多要素認証の要否)、通信の暗号化、アクセスログの記録と管理
– 環境・エコロジー: クラウド/オンプレミスの選択、サーバースペック、利用端末(PC/スマートフォン対応など)
中小企業の発注担当者が特に見落としがちなのがセキュリティと可用性の要件です。
「何となく安全に使えればよい」では不十分であり、どのレベルのセキュリティが必要かを明示することが、後々のリスク管理につながります。
システム開発 要件定義の進め方5ステップ
要件定義を体系的に進めるための標準的な手順を5つのステップで解説します。
工程を順番に踏むことで、抜け漏れや手戻りを最小化できます。
ステップ1:ステークホルダーからのヒアリング
要件定義の出発点は、プロジェクトに関わる全員からの情報収集です。
経営層・業務部門の責任者・現場の実務担当者の3層から個別にヒアリングを行うことが基本です。
経営層からは「どのような経営課題を解決したいか」「投資対効果の目標は何か」を聞き出します。業務部門の責任者からは「現在の業務フローの問題点と改善したい点」を、現場担当者からは「日々の作業での具体的な不便や要望」を収集します。
ヒアリングでは、相手が日常使う言葉で話してもらい、IT技術の知識を前提としない質問設計が重要です。
業務フロー図や画面のプロトタイプを見せながら話すことで、抽象的な要望を具体的な要件に落とし込みやすくなります。
ステップ2:課題と業務要件の整理
ヒアリングで収集した情報を整理し、システムで解決する業務課題と解決しない業務課題を明確に分けます。すべての要望をシステム化しようとするとコストとスケジュールが膨らむため、優先度の設定が不可欠です。
この段階でよく使われる方法は、各要件を「必須」「あれば良い」「将来対応」の3段階に分類することです。スコープを明確に定めることで、追加機能の要望が出た際の変更管理もしやすくなります。
ステップ3:機能要件・非機能要件の文書化
整理した要件を要件定義書として文書化します。要件定義書に含める主な項目は次のとおりです。
– プロジェクト概要(目的・背景・スコープ)
– 業務フロー(現状AsIsと将来ToBeの図解)
– 機能要件一覧(機能名・概要・優先度・補足)
– 非機能要件(可用性・性能・セキュリティ等)
– システム構成・インフラ要件
– 外部連携要件
– 用語定義集(プロジェクト内の共通用語の統一)
文書化では、管理番号と変更履歴を付与して追跡可能な状態にすることが重要です。
「未確定」の項目も空白にせず、未確定と明記した上で確認期限を設定します。
ステップ4:レビューと合意形成
作成した要件定義書をステークホルダー全員でレビューし、認識ズレを洗い出します。
開発者・発注者・現場担当者が同席するレビュー会議を設けることで、関係者全員の合意を確認できます。
レビューでは「この要件で開発した場合、実際の業務でどのように使うか」をシミュレーションしながら確認することが効果的です。
机上の論理だけで合意してしまうと、運用開始後に「使えない」という声が上がるリスクがあります。
ステップ5:要件定義書の承認とサインオフ
レビューを経て修正した要件定義書を最終版として確定させ、発注者の責任者がサインオフ(承認)します。
サインオフは、要件定義書の内容に発注者側が責任を持つことを明確にする重要な手続きです。
サインオフ後に要件を変更する場合は、変更管理プロセスとして別途費用・スケジュールへの影響を確認する手順を設けます。この仕組みを最初に合意しておくことで、後からの仕様変更による紛争を防ぐことができます。
要件定義でよくある失敗パターンと原因
要件定義で失敗するプロジェクトには、共通したパターンがあります。
自社に当てはまるリスクを事前に確認することが、失敗を防ぐ第一歩です。
曖昧な要件がスコープ拡大を招く
「なんとなく便利に」「前のシステムと同じ感じで」「使いやすく」といった曖昧な要件は、開発者が独自解釈で実装してしまう原因になります。
完成後に「思っていたものと違う」という手戻りが発生し、追加費用と納期遅延を招きます。
また、要件が曖昧なままでは途中から追加要求が次々と出てくる「スコープクリープ」が起きやすくなります。
最初に定義しなかった機能が「当然含まれていると思っていた」という認識ズレは、プロジェクト後半で発覚するほどダメージが大きくなります。
発注側の関与不足が認識ズレにつながる
要件定義を開発会社に丸投げするケースは中小企業に特に多く見られます。
開発会社が主導して要件定義書を作成しても、発注側が内容を十分に確認しないまま承認してしまうと、現場の実態とかけ離れたシステムが完成します。
要件定義は発注側が主体的に関与するプロセスです。
IPAの資料においても「要件定義の責任は発注者にある」という考え方が明示されています。
IT知識がなくても「業務をどう改善したいか」「何が不便か」を伝え続けることが、発注者に求められる最大の役割です。
また、現場の実務担当者が要件定義から排除されているケースも失敗の温床です。
業務の細かい実態を知るのは現場担当者であり、その視点が抜け落ちると運用開始後に「現場では使えない」という問題が浮上します。
要件定義を失敗しないための5つのポイント
要件定義を成功に近づけるために、発注側が意識すべきポイントをまとめます。
1つ目は、要件定義の工程に十分な時間を確保することです。
IPA「ソフトウェア開発データ白書2018-2019」によれば、要件定義工程の標準的な工期割合は全体の約17%です。
「早く開発を始めたい」という気持ちから要件定義を急ぐと、後工程での手戻りが増えます。
2つ目は、現場担当者を必ずヒアリングに参加させることです。経営層や部門責任者の視点だけでなく、日常業務の実態を把握している現場の声を反映することが不可欠です。
3つ目は、曖昧な表現を排除して具体的な数値・条件で記述することです。
「素早く表示されること」ではなく「3秒以内に画面が表示されること」のように、測定可能な基準で定義します。
4つ目は、優先度を明示してスコープを固めることです。「全部実現したい」は現実的ではありません。
「必須・任意・将来対応」の3段階で整理することで、予算とスケジュールの制約の中でバランスの取れた開発計画が立てられます。
5つ目は、変更管理プロセスを最初に合意しておくことです。
要件定義後の仕様変更は発生するものとして対処方法を決めておくことで、追加費用や納期延長を巡るトラブルを防げます。
要件定義にかかる費用と期間の目安
要件定義の費用はプロジェクト全体の開発費用の10〜20%が目安とされています。
規模や複雑さによって異なりますが、IPA「ソフトウェア開発データ白書2018-2019」では工数比率の標準値として約10%、工期比率として約17%が示されています。
具体的な費用感としては、PM1名・エンジニア1名で進める中規模のシステム開発であれば、要件定義だけで150万円前後を想定するケースがあります。
ただし、要件の複雑さや関係者の数が多い場合はさらに費用がかかります。
費用を安く抑えようとして要件定義の工程を短縮することは、後工程でのコスト増大につながります。
Barry W. Boehmの研究が示すように、要件定義段階での修正コストを1とした場合、リリース後の修正では最大200倍のコストがかかります。
要件定義への投資は、開発全体のコストを抑える最も効果的な手段です。
期間の目安は、小規模なシステム(10〜30画面程度)で1〜2ヶ月、中規模(30〜100画面程度)で2〜4ヶ月が一般的です。
ただし、関係者が多く合意に時間がかかるプロジェクトはさらに長くなります。
中小企業が外注時に意識したい要件定義の発注ポイント
中小企業がシステム開発を外注する際、要件定義工程の扱い方が開発の成否に直結します。
一般的な競合記事では触れられない発注側の実務上の注意点をまとめます。
まず、要件定義を無料サービスとして提供している開発会社には注意が必要です。
要件定義は本来、相応の工数がかかる専門工程です。無料で行うと言われた場合、表面的なヒアリングにとどまり、深い要件の洗い出しが行われない可能性があります。
要件定義は適正費用を払って進めるべき工程と捉えることが重要です。
次に、要件定義書の所有権を契約前に確認することを推奨します。
開発会社が作成した要件定義書は、後で別の会社に乗り換える際に必要になります。
契約書に「要件定義書の著作権は発注者に帰属する」旨を明記しておくことで、ベンダーロックインのリスクを軽減できます。
また、要件定義を複数の開発会社に依頼してから発注先を選ぶ「コンペ型」の発注方法は、要件定義の内容が会社ごとに異なるため比較が難しくなります。
まず1社と要件定義を進め、その内容を基に複数社から見積もりを取る「分離発注」の形が、比較検討しやすい方法です。
さらに、プロトタイプ(試作品)の作成を要件定義に含めることを検討する価値があります。画面の模型を実際に操作することで、現場担当者が要件の抜け漏れに気づきやすくなります。
テキストだけの要件定義書では伝わらないイメージを補完する手段として有効です。
システム開発の要件定義は、プロジェクト全体の方向性を決める最重要工程です。
何を定義すべきか、どのように進めるかを正しく理解することが、開発成功への近道です。
・要件定義の進め方や発注前の疑問点について相談したい場合は、Dimebizにお気軽にお問い合わせください。



