システム開発の成功を支える要素の一つが、要求仕様書です。
本記事では、システム開発における要求仕様書の概要や仕様書へ盛り込むべき内容の具体例、作成時の注意点を解説します。また、名称が似ている「要件定義書」「要求定義書」との違いについてもご紹介します。
目次
システム開発会社選びはプロにお任せ完全無料で全国5000社以上からご提案
システム開発における要求仕様書とは
システム開発における要求仕様書とは、システムに求める要素が詳細に記載された書類のことです。もう少し具体的に説明すると、システムに求める性能や機能、開発する目的、インターフェースなどの要求が記載された書類を指します。
要求仕様書の作成に必要なのが、「システムによって何を実現したいのか」を明確にする「要求定義」というフローです。要求定義の主体となるのはシステム開発を依頼する側ですが、依頼側の知識レベルによっては要求の内容が漠然としていることもあります。その場合は、開発会社側が適宜サポートをしながら要求内容を定めていきます。
システム開発で現在主流となっている、小さな作業工程ごとにテストを行ったり、依頼側の要求の確認をとったりしてシステムをブラッシュアップしていく手法が「アジャイル開発」です。そこでは、依頼側の「もっとこうしてほしい」という要求やフィードバックを要求仕様書へ記載する作業を行います。この作業そのものを要求定義というケースもあります。
要求仕様書と類似する資料の違い
要求仕様書と類似する書類として挙げられるのが「要件定義書」「要求定義書」です。それぞれにどのような違いがあるのか、以下で比較・解説します。
●要求仕様書と要件定義書の違い
ケースにもよりますが、要求仕様書は要件定義書の前に依頼会社側が主体となって作成する書類です。思いつくままに要求を記入するのではなく、「これは何のために必要な機能なのか」「この性能があることで最終的にどのようなことを実現したいのか」などの点をできる限り掘り下げることが求められます。
こうした要求仕様書の内容を受けて、システム開発会社側が作成するのが要件定義書です。要求仕様書の段階では、何を実現したいかはわかっていても、それを具体的に実現する指針や開発方針は曖昧なままです。そこで、技術的な視点をもって「何の機能を」「どのような技術・フローで」「どのように搭載するのか」などを明確にして要件定義書を作成します。
資料名 | 資料を作成する段階 | 記載する内容 | 作成者 |
---|---|---|---|
要求仕様書 | 要件定義の前 ※前後する場合もある |
・システムに求めること、開発したシステムで実現したいことなどの概念的な内容 ・上記を踏まえて搭載したい機能や性能 など |
システム開発を依頼する側(発注側) ※ヒアリングをもとに、システム開発会社側で作成するケースも多い |
要件定義書 | 要求仕様書の作成後 ※前後する場合もある |
・システムが満たすべき機能や制約条件など、より具体的かつ機能・性能面にフォーカスした内容 | システム開発会社(受注側) |
●要求仕様書と要求定義書の違い
要求仕様書と要求定義書は、同一視されることがありますが、ここでは、両者を切り分けて考えた場合の相違点を紹介します。
資料名 | 資料を作成する段階 | 記載する内容 | 作成者 |
---|---|---|---|
要求仕様書 | 要求定義書の前 ※前後する場合もある |
・システムに求めること、開発したシステムで実現したいことなどの概念的な内容 ・上記を踏まえて搭載したい機能や性能 など |
システム開発を依頼する側(発注側) |
要求定義書 | 要求仕様書の後 | 要求内容をより理解してもらうために、ユースケース図やワイヤーフレーム、遷移図などを用いる | システム開発を依頼する側(発注側) |
要求仕様書でシステムの大まかな機能や目的を決めた後に、要求定義書を作成していくのが一般的です。要求定義書には、仕様書の要求内容をより細かく伝えるという役割があります。ワイヤーフレームやユースケース図、フローチャートなどの図を用いて、視覚的にわかりやすい資料に仕上げるケースもあります。
要求仕様書を作成する際の注意点
要求仕様書作成に厳密なルールはありません。しかし、ポイントを押さえないまま仕様書を作成するとわかりにくいものになってしまいます。要求仕様書作成時の注意点は、以下の5つです。
-
システム開発・導入の目的を明確にする
-
5W1Hを意識した内容にする
-
搭載機能に優先順位をつける
-
用語や表記を統一する
-
できる限り図表や画像を入れる
●システム開発・導入の目的を明確にする
要求仕様書を作成する前に、システムを開発・導入する目的を明確にしておきましょう。目的が曖昧だと、システム開発に携わる開発会社側もどのように要件定義を行えば良いか迷ってしまい、結果的にシステムの品質に悪影響が及んでしまいます。システム開発の目的が明確であれば、開発会社やそのほかの関係者の理解度が深まり、開発中の迷走を防げます。また、開発会社側と依頼側で意見が食い違った際の指標にもなるでしょう。明確な目的・ゴールがあれば、これを基準に意見のすり合わせをスムーズに行えます。
●5W1Hを意識した内容にする
要求仕様書に限らず、各種仕様書や定義書を作成する際は5W1Hを意識することが重要です。5W1Hとは、「いつ(when)」「どこで(where)」「誰が(who)」「何を(what)」「どういう目的で(why)」「どのように(how)」という意味です。5W1Hを意識して記載することで、要求内容の洗い出しや整理がしやすくなります。
5W1Hを意識すると同時に、読み手となるシステム開発会社の業界知識を考慮しましょう。商材によっては、システム開発会社側に業界知識が備わっていない可能性もあります。専門用語や業界用語をできる限り使わず、誰にでもわかるような言葉を選んで5W1Hの形式へ当てはめていくと良いでしょう。
●搭載機能に優先順位をつける
搭載したい機能(要件)に優先順位をつけましょう。機能の優先順位がつけられていないと、システムそのものの動きが悪くなってしまいます。同時に、「システムを通して、どのような価値をエンドユーザーへ提供したいのか」という芯もブレてしまうでしょう。優先順位をつける際のポイントは、「システムに必要な機能」という漠然とした括りではなく、「ないと困る機能」「あったら嬉しい・便利な機能」という明確な括りをつくることです。「ないと困る機能」を洗い出したら、優先順位がやや低い「あると嬉しい機能」の精査へ移ると良いでしょう。
●用語や表記を統一する
要件仕様書で使用する用語や表記は、できる限り統一しましょう。特に、システム開発の専門用語には複数の異なる意味を持つ場合があります。例えば、「フォーマット」という用語には「書式・形式」という意味以外にも「ハードディスクやデータなどの初期化」という意味があります。この点を踏まえたうえで、以下の例文を読んでみましょう。
管理データを保存するディスクのフォーマットに注意する必要がある
このままの記述だと、ディスクの形式に気をつけるべきか、初期化に注意するべきかがはっきりしません。「フォーマット」という単語を「初期化」もしくは「形式」と置き換えることで、誤解のない表現になります。混乱を生むような用語の使い方に注意したうえで、要件仕様書で使用する用語・表記を統一することが大切です。
●できる限り図表や画像を入れる
テキストのみでわかりやすい要件仕様書を作成するのは難しいものです。しかし、システムの概要や処理の流れなどを簡潔に記載した「シーケンス図」やコンテンツ配置を決める「ワイヤーフレーム図」、ページ遷移のイメージ図などを適宜入れることで、視覚的なイメージが湧きわかりやすい仕様書になります。Web上には、要件仕様書のサンプルや例文つきのテンプレートも多数公開されています。迷ったら、公開されているものを参考にして作成を進めるのも良いでしょう。
システム開発の要求仕様書に盛り込むべき項目
要求仕様書に盛り込むべき項目は、以下の5点です。
-
現状の背景や課題
-
システムを導入する目的
-
システムに求める機能
-
システムの開発体制
-
システムの開発スケジュール
●現状の背景や課題
システムの開発や導入が必要となった背景、課題を明確に記載しましょう。例えば、業務の非効率性や既存システムが抱える課題、顧客や従業員からの苦情などが該当します。「新しいシステムを導入することで解決できる課題は何か」という観点から、課題を探るのも良いでしょう。背景や課題を明確にできれば、新しいシステムの必要性を強調できます。
●システムを導入する目的
新しいシステムを開発・導入することで、どのような目的(ゴール)を達成したいのかを設定しましょう。例えば、コストの削減や商材の品質向上、業務効率の改善、新規顧客の獲得などが挙げられます。その際、「顧客管理システムを開発・導入し、顧客情報を有効活用することでよりマーケティングの精度を向上させたい」というように記載すると良いでしょう。さらに、「リピーター獲得率◯◯%アップ」「平均作業工数◯◯時間削減」など、具体的な数値を交えたゴールを設定できるとなお理想的です。
●システムに求める機能
優先順位を決めたうえで、システムに求める機能や特徴を記入します。具体的には、検索機能やデータ・ログの管理機能、データの入出力機能などが該当します。また、各種インターフェースに関する機能も必要です。エンドユーザーが実際に目にし、ボタンやスワイプなどで操作する画面機能である「ユーザーインターフェース」、コンピュータとその周辺機器のように、ハードウェア同士を接続する「ハードウェアインターフェース」などへの要求も記入しましょう。
なお、機能の優先順位の洗い出しからリストアップまでの流れには、システム開発に関する専門知識が必要となるケースがあります。要求仕様書の主導権はあくまでも依頼会社側にありますが、行き詰まったら受注側のサポートも受けつつ作成を進めると良いでしょう。
●システムの開発体制
システム開発会社側のプロジェクトマネージャー(PM)の決定を優先しつつ、システム開発に必要な人員や役割、責任の所在などを決定します。同時に、必要となりそうな知識やスキル、コミュニケーションに関するフローについても定義しておきましょう。この項目は、依頼会社側の一存で記入できるものではありません。システム開発会社側のプロジェクトマネージャーと相談のうえ、適切な人員・スキルを確保する必要があります。
●システムの開発スケジュール
開発プロジェクトの開始から終了までのスケジュールを記載します。システム開発の一般的な流れは以下のとおりです。
-
要件定義
-
外部設計
-
内部設計
-
コーディング/プログラミング
-
各種テスト
-
リリース
-
運用/保守
開発の手法によって差異はありますが、基本的には上記の工程を経てシステム開発が進みます。こちらも参考に、要件仕様書のスケジュールを記載してみてください。
まず初めにすることは、各フェーズの開始日と終了日、そこに含まれている中~小規模なタスクの期限と作業担当者、テストスケジュールの記入です。ただし、スケジュール作成時には、システム開発の目的や機能、開発体制、各種リソースなどの要素を踏まえる必要があります。システム開発会社と合意のうえで最終的なスケジュールを策定しましょう。
要求仕様書は、システム開発に関する専門知識やノウハウが求められる書類でもあります。したがって、外注先のプロジェクトマネージャーやシステムエンジニアなど、システム開発の上流工程を請け負うエンジニアへ作成を依頼するという手もあります。専門知識のある企業やパートナーのサポートを受けながら、より正確な要件仕様書を作成していきましょう。システム開発は、開発会社側へ作業を丸投げできるものではありません。特に、要求仕様書や要求定義書を作成するフェーズは、依頼者側が要求内容を積極的に発信し、ブラッシュアップしていく場面です。
開発会社を選定する前に、要求仕様書に関する理解を深めておきましょう。要求仕様書について理解が深まったら、発注ナビで外注先となるシステム開発会社を探してみてください。
発注ナビであれば、全国5000社以上の開発会社の中から、ご要望や案件内容に合った開発会社を厳選してご紹介いたします。『自社に合った開発会社がわからない』、『選定にできるだけ時間をかけずにスムーズに導入したい』とお考えのご担当者様は、ぜひ一度ご検討してみてはいかがでしょうか。発注ナビの詳細は、以下よりご覧いただけます。
システム開発会社選びはプロにお任せ完全無料で全国5000社以上からご提案
■システム開発に関連した記事