要件定義とは

要件定義とは、作る前に「何を作るのか」「何ができればよいのか」を整理することです。
要件定義が曖昧だと、作っている途中で機能が増え続けたり、完成条件が分からなくなったりします。
整理する項目
| 項目 | 例 |
|---|---|
| 目的 | 学習時間を記録したい |
| ユーザー | 自分、同級生 |
| 機能 | 追加、一覧、合計 |
| 制約 | スマホで使う、無料で公開 |
| 完了条件 | 1週間分を保存できる |
初心者向けの型
誰が、何に困っていて、何ができれば解決したと言えるか。
この1文を書けると、作るものが明確になります。
よくある失敗
最初から「ログインも通知もAIも入れたい」と広げると完成しにくくなります。まず必要最小限を決めます。
要件と仕様の違い
要件は、利用者や運営に必要な状態と制約です。仕様は、その要件を満たすための具体的な振る舞いやinterfaceを示します。
要件:
生徒が自分の課題だけを期限順に確認できる
仕様例:
GET /api/assignments はlogin中の生徒の課題を返す
並び順はdeadlineの昇順
未loginは401
成功例は、目的、対象user、必要な状態、制約、完了条件を確認してから、仕様へ落とすことです。失敗例は「Reactを使う」を要件にし、利用者が必要とする結果を決めないことです。技術指定が契約や環境の制約なら、理由とともに要件になり得ます。
完了条件には正常系だけでなく、未入力、権限違い、通信失敗など重要な失敗条件も含めます。 関係者と確認します。
確認問題
「申込できる」という要件だけで完成を判断できるでしょうか。誰が、何を入力し、成功時に何が残り、重複や未入力をどう扱うかを具体化します。
目的と目標の整理は目的と目標の違い、価値確認の最小範囲はMVPとは?を参照してください。
まとめ
要件定義は、作る前の整理です。目的、ユーザー、機能、制約、完了条件を決めると、実装中の迷いが減ります。
← 一覧に戻る