要件定義について言語化できる様に整理してみた

# はじめに

エンジニアのみなさま、日々の学習本当にお疲れ様です！
また本記事まで足を運んでいただき本当に感謝です。
約3分程度で読めるので最後まで読んでもらえると幸いです。

---

要件定義フェーズの新しい案件に入る予定です。過去何回か対応したものの、対応手順や内容、要件定義に関わる用語について上手く言語化出来ない箇所があったため、振り返り兼ねて整理してみました。

# 要件定義とは
要件定義は、システム開発の初期段階で、ユーザーの要求やニーズを具体的な開発内容に落とし込む工程です。要求定義がユーザー視点で **「何を必要とするか」** を定義するのに対し、要件定義は開発者の視点から **「どのように実現するか」** を明確にします。このプロセスでは、システムの機能や性能、利用する技術などを具体的に定め、ステークホルダーと合意形成を行います。

**プロジェクトの目的やゴールを明確にし、開発範囲や実装すべき機能を確定するため** 要件定義を行います。

プロジェクトの成功を左右する要因であり、正確な定義を行うことで、後の開発工程をスムーズに進め、仕様変更によるリスクを最小限に抑えることが可能となります。


# 要件定義で決めること

### 1. **業務要件**  
業務要件は、**システムがサポートするビジネスプロセスや業務の目的を明確に定義する** ものです。具体的には、業務フローや手続き、業務を行う上で必要な情報の流れを整理し、それに基づいてシステムがどのように支援するかを定義します。これにより、システムが実現すべき業務上のニーズを明確にし、システム化の範囲や目標が定まります。業務要件は **「なぜそのシステムが必要か」**  **「システムを通じて何を解決するのか」**  **「誰がシステムを使用するのか」** という観点から整理されることが多く、システム利用者が求める成果や目標を明確にするための重要なステップになります。この過程では、**フローチャート** や **業務シナリオ** などの視覚的に把握しやすいツールを用いて、各プロセスがどのようにシステムと連携するかを明確にすると良さそうです。また、 **システム導入によって期待される効果（たとえば、業務の効率化やコスト削減など）を定量的に示す** ことも重要です。

### 2. **機能要件**  

![スクリーンショット 2024-09-15 23.16.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3744730/89a23ffc-805b-9553-a32b-822ce367edc1.png)
※引用：IPA（独立行政法人 情報処理推進機構）図1 機能／非機能要求の相違点と課題

機能要件は、**「必ず搭載すべき機能」** を指します。新規開発であっても既存のリプレイスであっても顧客としては業務内容に直結しているため、イメージしやすい機能になっています。機能要件をすり合わせすることにより、システムの動作が明確になり設計段階での誤解を防ぎます。これらの機能要件が適切に設定されていないと、後々の開発過程で手戻りが発生する可能性があるため、初期段階での詳細な定義が求められます。

以下で活用するドキュメントについて整理しました。時間があれば合わせて読んでください！

https://qiita.com/ho_na/items/002181393b67cb16af4f

 ### 3. **非機能要件**  

![スクリーンショット 2024-09-15 23.19.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3744730/2135c956-831b-38aa-5096-7dfcffe9096e.png)

※引用：IPA（独立行政法人 情報処理推進機構）図1 機能／非機能要求の相違点と課題

非機能要件は、システムの性能や安全性、拡張性、可用性など、システムの「質」を左右する要件を定義します。IPA（独立行政法人 情報処理推進機構）では **「非機能要求グレード」** と呼ばれる、非機能要求項目を網羅的にリストアップして分類するとともに、それぞれの要求レベルを段階的に示すためのドキュメントがあります。項目としては以下があります。

#### 可用性

運用スケジュールや障害発生時の復旧などに関する要求

#### 性能/拡張性
ピーク時の負荷や業務量増加の対応などに関する要求

#### 運用/保守性
システム運用時の稼働率や問題発生時の対応などに関する要求

#### 移行性
新システム移行に関する要求

#### セキュリティ
利用者の制限や不正アクセスの防止などに関する要求

#### システム環境/エコロジー
システムの設置環境や消費エネルギー量などに関する要求

もう少し詳細を記載した記事も投稿してます。時間があれば合わせて読んでみてください！

https://qiita.com/ho_na/items/a84f9a0db793cb0411db

# 要件定義の成果物
要件定義の成果物としては「要件定義書」があります。要件定義書には、システムの全体像、機能要件、非機能要件、プロジェクトのスケジュール、予算、担当メンバーなどが詳細に記載されます。これにより、プロジェクトの進行に必要な情報が整理され、プロジェクト関係者全員が同じ理解を持つことができます。特に、大規模なプロジェクトでは、この要件定義書があることで、後々の仕様変更や追加要望に対しても迅速に対応できるようになります。

# さいごに

今回はさまざまな記事を読んだ中で大切な要素をまとめて整理しただけの記事になりますが、案件で感じたことや課題点・改善点が出てきた段階で順次ブラッシュアップしていきたいなと考えてます！

# 参考記事

https://www.ipa.go.jp/archive/digital/iot-en-ci/jyouryuu/hikinou/ent03-b.html

https://products.sint.co.jp/ober/blog/nonfunctionalrequirements

https://qualitycube.jp/2023/08/28/requirement-definition-thorough-explanation/

https://www.brain-gate.net/content/column/system-program-functional-requirement/

https://www.biz.ne.jp/matome/2005051/

# おまけ

弊社のご紹介もさせてください！

### 「日本で一番エンジニアが成長できる会社を創る」

https://prum.jp/

### エンジニアリングの募集

https://www.wantedly.com/projects/1808638

### PM・Webディレクションの募集

https://www.wantedly.com/projects/1355235

### セールス・事業開発の募集

https://www.wantedly.com/projects/1792065

### コーポレート系の募集

https://www.wantedly.com/projects/1752874

### コンサルティングの募集

https://www.wantedly.com/projects/1794481

弊社メンバーは日々学習した内容をアウトプットしております！
少しでもご興味を持たれた方は求人を見てみてください！
ご応募もお待ちしております！

### 最後までご覧いただき、ありがとうございました！