第1回 そもそも「要件定義書」はどう書くのか?やさしく解説
システム開発の成功において、上流工程、なかでも要件定義は非常に重要な意味を持ちます。しかし「要件定義とは何か?」は少しイメージしづらく、「要件をどう獲得すればよいのか」「要件定義書はどう書けばよいのか」に困っている方が多いのではないでしょうか。
本連載コラムでは、初めてシステム開発を行う方でも理解できるように「要件定義とは何か」や「手戻りやQ&Aが多発しない要件定義書の書き方、進め方」を解説します。すでに要件定義工程の経験があり、要件定義の具体的な課題や解決方法をすぐに知りたい方は、次回の第2回から読んでいただければと思います。
本連載の目的
本連載の概要 |
|
こんな方にお勧め |
|
まず「要件定義とは何か」から始めましょう。そのためには「システム開発の流れ」を把握する必要があります。システム開発の要件定義~実装までをざっくり説明すると
①どんな製品やシステムを作りたいのかを定義
②定義した製品やシステムをどう実現するかを設計
③設計に従ってハードウェア/ソフトウェアを実装
という流れになります。この①に相当するのが要件定義であり、要件定義とは、システムの設計を始めるにあたって、「そもそも作りたいシステムとは何か」「そのシステムはどんな条件(要件)を満たす必要があるか」を定義するものです。
と言っても具体的なイメージが湧かない方もいると思うので、ここではシステムを「家」に例えて解説したいと思います。
賃貸の部屋探し、あるいは家を建てる際、まず「こんな家、こんな環境でこういう生活をしたい」を考えると思います。これを「要求」あるいは「要望」と呼びます。
そして不動産屋が要求をヒアリングしながら「間取り、駅からの距離、欲しい周辺施設と優先度」「子供部屋がいくつ必要、趣味のためにこんなスペースが必要」といった具体的な「要件」や「実現手段」として整理していきます。これが「要件定義」です。今まで部屋探しや家を建てたことのある方であれば、要件定義が曖昧、不十分なことでどうなるか・・・よくご存じだと思います。
家を建てる場合であれば、ここから「設計」が始まり、要件を実現できる「各部屋の大きさ、配置、動線」などを決めていきます。そして最後は設計に従って家を建てる「実装」です。
Eureka Boxは厚生労働省が実施している助成金、人材開発支援助成金の適用対象となります。
システム開発の場合も家の場合も、「要求する人」「要件として定義する人」「設計する人」が全て同じ人であることは基本的にありません。システム開発の場合、要件定義工程で要件定義書という成果物を作りますが、それを設計担当(ベンダー、SIer、サプライヤ、設計部署)に引き渡して設計してもらうことが多いと思いますし、要件定義書をクライアント側で作る、SIer側で作るパターンもあります。その際に
「要件が正しく伝わらない(意図と違うものが出来上がる)」
「設計担当からのQ&Aが多発し収拾がつかない」
「要件の抜け漏れに気づくのが遅く手遅れになる」
といった課題が発生しがちで、多くのシステム開発で要件定義に苦労しているのが現状です。
こちらも家を例にしてもう少し具体的に説明します。例えば「駅近」はよくある要件ですが、意味合いは人それぞれ異なる場合があります。「夜道が怖いから駅近が良い」という人にとって、「駅近だが街灯のない暗い道を通る物件」は要件に適う物件ではないですよね。このように要件の背景まで伝えないことで「要件が正しく伝わらない」ことが良くあります。
「Q&Aが多発」については、「この要件の意味は?」「こういう要件は不要?」となど質問自体はありがたいものですが、Q&A表を作って上司の承認を貰って・・・と思いのほか工数を取られてしまいます。
最後の「要件の抜け漏れ」については、例えば家を建て始めてから「やっぱり部屋がもう1つ必要!」といっても当然手遅れです。システム開発の場合は融通が利くかもしれませんが、追加費用を求められたり、日程に追われて検討が不十分なまま要件を追加することで不具合に繋がるリスクがあります。
本コラムでは家を例に、システム開発の全体像を説明しました。より詳細に全体像や流れを知りたいエンジニアの方には、オンライン学習プラットフォーム Eureka Box (ユーリカボックス)の「新人向けソフトウェア開発クエスト」をおススメします。
Eureka Boxは上流工程を中心とした様々な技術の学習プラットフォームであり、「新人向けソフトウェア開発クエスト」ではシステム開発の流れを体感しながら、個々の技術の基本を学習することができます。
※引用 Eureka Box(ユーリカボックス)新人向けソフトウェア開発クエスト
https://member.eureka-box.com/products/2-06ad07f4-3fbe-4cd8-89c3-f1092f288e19
“新人エンジニアに適した教材が無い”
“新人でも挫折しにくい学べる教材が欲しい”
そんな声にお応えした新しいコースで、ロールプレイングゲームを楽しむ感覚で学習できる開発ビギナー向けのパッケージ。「何からどう学べばいいかわからない」という新入社員や開発未経験者が迷わずにすむよう、システムとソフトウェアの要件定義から設計までの全体像と実務スキルを学べるようにしています。
ロールプレイングゲームと同様に、プログラムを完了するたびにアイテムが手に入るなど、楽しみながら知識・スキルを習得できるように工夫されています。研修担当者は、研修コンテンツを自ら設計する必要なく、新人や若手エンジニアの育成を進めることができます。
※引用 Eureka Box(ユーリカボックス)新人向けソフトウェア開発クエスト
https://member.eureka-box.com/products/2-06ad07f4-3fbe-4cd8-89c3-f1092f288e19
「新人向けソフトウェア開発クエスト」は体験版をご用意しています。
オンライン学習プラットフォーム Eureka Box(ユーリカボックス)に無料登録のうえご利用ください。
エンジニアの独学・スキルアップに!他では学べない技術が充実
上流工程ソフトウェア開発技術を学ぶ!
Eureka Box(ユーリカボックス)
本連載コラムでは数回にわたって「要件定義のやり方、要件定義書の書き方」を解説します。第1回では「そもそも要件定義とは何か」「どんな問題が起きているのか」を解説しましたが、腹落ちできたでしょうか?次回は「要件定義書の書き方」を解説します。
デジタル人材が不足している今の時代、特にソフトウェア開発の現場では「上流技術」のスキルを持つ人が必要とされています。
そのスキルが効率よく身につくように設計されたのが「オンライン学習のEureka Box(ユーリカボックス)」
Eureka Boxの運営企業であるエクスモーションは、日本を代表する大手自動車メーカー、医療機器メーカー等、ソフトウェア開発の支援を実際に行っている企業だからこそ、現場で活かせる学びに焦点をあてたプログラムに構成されています。
「Eureka Box(ユーリカボックス)」を是非ご活用ください。