要件定義 ようけんていぎ
簡単に言うとこんな感じ!
「新しいシステムに何をやってほしいか」を言葉で整理して文書にまとめる作業だよ!家を建てるときの「間取り図と仕様書」みたいなもので、これがズレると出来上がったシステムが「思ってたのと全然違う!」になるんだ。
要件定義とは
要件定義とは、システム開発の最初のフェーズで行われる作業で、「そのシステムが何をできなければならないか」を洗い出し、関係者全員が合意できる形で文書化するプロセスです。発注者(ビジネス側)とベンダー(開発者側)が同じゴールを向いて開発を進めるための「設計図の前段階となる約束書」といえます。
要件定義がしっかりできていないと、開発が進んでから「あの機能が足りない」「そもそも使い勝手が違う」といった手戻り(やり直し)が大量発生します。開発費用の超過・納期の遅延・品質低下はほとんどがここでの詰めの甘さに起因するといわれており、ITプロジェクトにおいて最も重要な工程のひとつです。
要件定義は、発注者側(ユーザー企業)が主体的に関わるべき工程でもあります。「何をしたいか」を一番知っているのは現場や経営者であり、ベンダー任せにすると業務の実態とかけ離れたシステムができあがりやすくなります。
要件の種類と構造
要件定義で整理すべき要件は大きく2種類に分かれます。
| 種類 | 説明 | 例 |
|---|---|---|
| 機能要件 | システムが「何をするか」 | 注文管理・在庫確認・帳票出力など |
| 非機能要件 | システムが「どのように動くか」 | 性能・セキュリティ・可用性・保守性など |
機能要件は「できること・できないこと」のリスト、非機能要件は「どの程度のレベルで動くか」の品質基準です。発注者が見落としがちなのは非機能要件で、後から追加しようとすると費用が跳ね上がりやすいため注意が必要です。
覚え方:「キノヒ(機能・非機能)で二分する」
要件定義の2大カテゴリは「機能要件(キノ)」と「非機能要件(ヒ)」。この2つを”キノヒ”と覚えておくと、ヒアリング時に抜け漏れを防げます。
非機能要件の主な分類(IPA定義)
| 大項目 | 内容 |
|---|---|
| 可用性 | システムがどれだけ止まらずに動き続けられるか |
| 性能・拡張性 | 処理速度・同時接続数・将来の拡張への対応 |
| 運用・保守性 | 障害対応・バックアップ・バージョンアップのしやすさ |
| 移行性 | 既存システムからのデータ移行のしやすさ |
| セキュリティ | 認証・認可・暗号化・ログ管理など |
| システム環境 | 動作するOS・ブラウザ・ハードウェア条件 |
歴史と背景
- 1970年代〜 ソフトウェア開発の規模拡大に伴い、「作る前に決める」文化が生まれ始める。ウォーターフォール型開発の普及とともに要件定義が開発工程の「第一フェーズ」として確立
- 1984年 IPAの前身となる組織が日本でソフトウェア工学の体系化を推進。要件定義の重要性が国内でも認知される
- 1990年代 ERPパッケージ(SAPなど)の普及により、「パッケージに業務を合わせるか・パッケージをカスタマイズするか」を決める要件定義の位置付けが重要化
- 2000年代 アジャイル開発の台頭により、「最初にすべてを決める」従来型要件定義の限界が議論される。ユーザーストーリーやバックログによる要件管理が登場
- 2010年代以降 DX推進の流れで、業務部門がシステム発注する機会が増加。発注者側リテラシーとしての要件定義スキルが注目される
要件定義の進め方と成果物
要件定義は一般的に以下のステップで進みます。
要件定義の最終成果物は**「要件定義書」です。この文書は開発契約の基準となり、後工程の設計・開発・テストすべての起点になります。「スコープ外(やらないこと)を明示する」**ことも要件定義書の重要な役割で、追加要望による予算超過を防ぐ防波堤になります。
ウォーターフォールとアジャイルにおける要件定義の違い
要件定義のアプローチは開発手法によって大きく異なります。
| 観点 | ウォーターフォール | アジャイル |
|---|---|---|
| タイミング | 開発前に一括で定義 | 反復しながら継続的に定義・更新 |
| 詳細度 | 開発前に詳細まで固める | 最初は大まかに定義し細部は後で |
| 変更対応 | 変更は原則コスト増・工期延長 | 変更を前提とした設計 |
| 成果物 | 要件定義書(Word・Excel) | ユーザーストーリー・バックログ |
| 向いているシステム | 仕様が安定している基幹系 | 要件が変化しやすいWebサービス |
どちらが優れているかではなく、開発するシステムの性質・発注者の準備状況に合わせた選択が重要です。基幹系・業務システムの発注ではウォーターフォール的な要件定義書を求められることが多いため、発注者としてしっかり関与する姿勢が求められます。
発注者が陥りやすい失敗パターン
ビジネスパーソンが発注側として関わる際に特に注意すべき落とし穴を整理します。
| 失敗パターン | 内容 | 対策 |
|---|---|---|
| 丸投げ | 「うちの業務はベンダーに説明したからあとはよろしく」 | 業務有識者が要件定義に常駐参加する |
| なんとなく承認 | 要件定義書を読まずにサインする | 不明点はすべて質問・議事録を残す |
| スコープ外の無視 | 「これくらい追加してくれるでしょ」 | 追加はすべて変更管理プロセスを踏む |
| 現場不参加 | 経営層だけで決めて現場が使わない | 実際の利用者を要件定義に巻き込む |
| 「あとで決める」の多用 | 未決事項を先送りして開発が進んでから揉める | TBD(未定)項目の期限を必ず設定する |
関連する規格・RFC
| 規格番号 | 内容 |
|---|---|
| ISO/IEC/IEEE 29148:2018 | システム・ソフトウェア工学における要件エンジニアリングのプロセスと要求事項を規定した国際標準 |
| IEEE 830 | ソフトウェア要件仕様書(SRS)の推奨プラクティス(現在は29148に統合) |
関連用語
- RFP(提案依頼書) — 要件定義を元にベンダーへ提案を依頼するための文書
- スコープ管理 — プロジェクトで「やること・やらないこと」の境界線を管理する手法
- ウォーターフォール開発 — 要件定義→設計→開発→テストを順番に進める伝統的な開発手法
- アジャイル開発 — 要件を柔軟に変えながら小さく繰り返し開発する手法
- システム設計 — 要件定義の次フェーズ。要件をどう実現するかを設計する工程
- ユーザーストーリー — アジャイル開発における要件の記述単位。「〜として〜したい」形式
- 変更管理 — 承認済みスコープへの変更をコントロールするプロセス
- 非機能要件 — 性能・セキュリティ・可用性など「どのように動くか」を定義する要件