仕様書とは何か?プロジェクトで使われる3種類の仕様書を解説

2020年4月15日

あいまいな「仕様書」という言葉

アプリケーションを開発するプロジェクトのプロジェクト・マネジャー(以下、プロマネと略記)やディレクターになると「仕様書を作っておいて」と言われることがよくあります。
このように自分が作る仕様書がある一方で、クライアント側から「これが今回の仕様書です」と渡される仕様書もあります。
一口に「仕様書」と言っても、いろんな仕様書が存在している一方で、取り違えてしまうとプロジェクトに大きな影響を与えてしまいます。
今回はあいまいに使われている仕様書の種類を解説し、プロジェクトでどのように使われているのかを紹介していきます。

プロジェクトに登場する仕様書まとめ

プロジェクトででてくる仕様書を大きく分けると、以下の3つの種類があります[1]Scott Berkun (著)、村上雅章 (訳)『アート・オブ・プロジェクトマネジメント … Continue reading

  • 要求仕様書
  • 機能仕様書
  • 技術仕様書

簡単にそれぞれの仕様書の特徴をまとめると、要求仕様書「このプロジェクトで求められているのは何か?」をまとめた文書です。
機能仕様書は、このプロジェクトで作られるプロダクトに「どのような機能が求められているのか?」を記述した文書です。
そして、技術仕様書は、そのプロダクトを「どのように開発していくのか?」を記した文書です。
このように、これら3つの仕様書の目的・役割は大きく異なっているので、仕様書の中身を確認せず作成したりすると大変なことになってしまいます。
仕様書の作成を頼まれた際には、必ず何の仕様書を作成するのかを確認しましょう。
ここからは、さらにこれらの仕様書を詳しく見ていきましょう。

要求仕様書

要求仕様書の内容

要求仕様書とはプロジェクトに期待されていることがらをまとめた文書です。平たく言うと、プロジェクトの「ニーズ」について記述されたものです。
例えば、「予約フォームを作ってほしい」「新人社員用のeラーニングコンテンツを作ってほしい」というように、プロジェクトで実際に何をすればよいのかを要求仕様書には記述していきます。
この要求仕様書はプロジェクトのニーズを固めて、ステークホルダーやプロジェクトのメンバー間での認識の相違が生まれないようにするだけでなく、要求仕様書をもとに、要件定義を進めていったり、プロジェクトの終盤に「当初の希望は達成できたのか」の確認に使用していったりします。

要求仕様書は誰が作るのか

この要求仕様書を作成するのは、実際にプロジェクトを依頼する人物です。
外部のソフトウェア開発を行うベンダーなどは、この要求仕様書をもとに何をすべきかを判断し、見積りを作成していきます。
また、外部に依頼しない場合であっても、組織内のプロマネに要求仕様書を渡し、プロジェクトを進めてもらいます。

機能仕様書

機能仕様書の内容

機能仕様書とは、プロジェクトで開発するソフトウェアの動作について解説した文書です。
先ほどの要求仕様書に記された依頼者側の希望やニーズに、どのような機能を作ることで対応していくのかをまとめていきます。
例えばソフトウェアのインターフェースをデザインした画面設計書や機能一覧なども機能仕様書に含まれるといえます。
機能仕様書を作成する際は、資料を見ただけでプログラマーが開発に着手できるよう、丁寧に作成する必要があります。口頭で説明する必要がないくらい、わかりやすい資料を作成するように注意しましょう。

画面設計図を加える

画面設計図の例
参考画像1:画面設計図の例

機能仕様書や次の技術仕様書では、適宜画面設計図を書いていくと、よりわかりやすい仕様書になります。
画面設計図は参考画像1のように、Microsoft社のPowerPointの作図機能で作ったようなものでも問題ありません。
「ボタンを押せば画面が開いて推薦メッセージが表示される」という機能を文字でみてもイメージするものは人によって違いますが、図で書くと認識を合わせることができます。
画面設計図は必須というものではありませんが、画面設計図があったほうが、実際に開発するエンジニアも、具体的な成果物としてどのようなものを開発すればいいのかがより明確にイメージでき、作業をしやすくなります。
さらに、自社のサービス・システム開発ではなく、ベンダーがクライアントから要求されたものを開発する場合、相手がシステムに関しての知識をほとんど持っていないという場合もあるため、専門用語だらけの仕様書よりも、画面設計図があったほうが理解が深まり、認識の不一致の発生も防げます。

改修プロジェクトでのポイント

新規にシステムを開発するのではなく、システムに手を加える改修プロジェクトでは、既存のシステムがどのようになっているのかを整理しておく必要があります。
ベンダーが新規のクライアントから改修プロジェクトを依頼された場合は、すぐに仕様書の作成に着手せず、既存の仕様書の有無を確認し、存在しない場合は、ミーティングなどで現状のシステムについてヒアリングし、それを踏まえたうえで仕様書を作成していきましょう。
既存のシステムを把握していないと、再度仕様の練り直しになってしまう可能性があるので注意しましょう。

機能仕様書は誰が作るのか

機能仕様書は、プロマネやシステムエンジニア、テクニカルディレクターが依頼者側の協力のもとで作成していきます。
次にみる技術仕様書とは異なり、単純に開発する内容を説明することだけが目的ではなく、依頼者側と受託者・ベンダー側の認識が誤っていないかを確認する文書でもあるため、作成を主導していくのは依頼された側のプロマネやシステムエンジニア、テクニカルディレクターですが、依頼した側もしっかりとサポートをしていく必要があります。

技術仕様書

技術仕様書の内容

技術仕様書とは、機能仕様書に記されている機能を開発していくために、どのような手法を用いていくのかをまとめた文書です。
すべての機能に対して仕様書を作成する必要はなく、複雑なコンポーネントや、他のプログラマーが再利用する可能性のあるコンポーネントを解説したり、機能仕様に必要な作業項目に対して技術的な裏付けを提供できるだけのレベルでも十分です [2]Scott Berkun (著)、村上雅章 (訳)『アート・オブ・プロジェクトマネジメント … Continue reading

技術仕様書は誰が作るのか

技術仕様書はシステムエンジニアやテクニカルディレクターがプログラマーと相談しながら作成していきます。
多くの場合、技術仕様書の存在は依頼者側には関係のないものですが、ソフトウェアを開発した後の保守性を高めるために、技術仕様書の作成も依頼することもあります。

1 Scott Berkun (著)、村上雅章 (訳)『アート・オブ・プロジェクトマネジメント ―マイクロソフトで培われた実践手法』オライリー・ジャパン、2006年、158~159頁。
2 Scott Berkun (著)、村上雅章 (訳)『アート・オブ・プロジェクトマネジメント ―マイクロソフトで培われた実践手法』オライリー・ジャパン、2006年、159頁。