【ようけんていぎ】
要件定義 とは?
💡 作る前に「何を作るか」をハッキリさせる最初の一歩
📌 このページのポイント
- 開発プロジェクトの最上流工程で、何を作るべきかを決める作業
- ユーザーや関係者へのヒアリングを通じて要望を洗い出す
- 機能要件(何ができるか)と非機能要件(性能・セキュリティなど)に分けて整理する
- 要件定義が曖昧だと後工程で手戻りが発生し、コストが大幅に増える
要件定義ってそんなに大事なの?早くコード書き始めたほうが速くない?
気持ちはわかるけど、要件定義をおろそかにすると「思ってたのと違う」ってなって作り直しになるんだよ。後から直すほどコストは何倍にも膨らむから、最初にしっかり決めるのが結果的に一番速いんだね。
機能要件と非機能要件って何が違うの?
機能要件は「ログイン機能がほしい」「検索できるようにしたい」みたいな具体的な機能のことだよ。非機能要件は「3秒以内に表示」「99.9%の稼働率」みたいな性能やセキュリティの基準のことだね。両方揃って初めて完成だよ。
新人でも要件定義に関わることってあるの?
あるよ。議事録を取ったり、ヒアリング内容を整理したりする役割で参加することが多いんだよ。先輩がどうやってユーザーの「ふわっとした要望」を具体的な仕様に変えていくか、間近で見られる貴重な機会だね。
アジャイル開発でも要件定義ってやるの?
要件定義の失敗例ってどんなものがあるの?
有名なのはみずほ銀行の統合システム開発で、要件定義の段階で3行のシステムの統合方針が決まりきらず、数千億円規模のプロジェクトが大幅に遅延した事例だね。要件定義の失敗はプロジェクト全体の失敗に直結する。実は統計的にもITプロジェクトの失敗原因の約50%が要件定義の不備と言われているんだ。
まとめ:ざっくりこれだけ覚えればOK!
「要件定義」って出てきたら「システムに何が必要かを最初に決める工程」と思えればだいたいOK!
📖 おまけ:英語の意味
「Requirements Definition」 = 要求事項の定義
💬 Requirementは「必要条件・要求」を意味し、Definitionは「定義・明確化」を意味する。システムに求められる条件を明確に定めることを表す。