仕様書とは?作成する目的と種類、上手く記述するためのポイント

2021年8月23日

ソフトウェア開発は計画的に進められます。慎重に進めなければ、発注者を開発の認識の齟齬からトラブルが起きてしまうことも少なくありません。発注者と受託開発を行う企業の認識をすり合わせるため、いくつかの文書を作成した上で段階的に開発に着手するのが一般的です。仕様書もソフトウェア開発で作成される書類のひとつ。

こちらでは、仕様書がどんな文書なのか、記載される情報や重要性、書き方などについてお話しします。ITシステムやソフトウェアの開発を予定している場合は、参考にしてください。

仕様書とは?

開発業務で作成される仕様書ですが、具体的な定義については曖昧になっている現場が多いかもしれません。まずは仕様書の定義や、仕様書と並び作成されることが多い設計書について解説します。

仕様書の意味と目的

仕様書とは、製品やサービスなどが満たすべき条件や内容を明確化し、まとめた書類のことです。製品やサービスを開発するにあたり、関係者間の認識齟齬を生まないために作成します。作成する場合は、認識のずれが生じないよう、仕様の抜け漏れが起こらないよう留意する必要があります。

仕様書がなければ、開発途中の仕様変更が生じやすくなり、工数が増加します。そのため、仕様書によって「目指すべきアプリ像」を明確にしておくことは大切です。納品後に仕様書と異なる点があれば開発会社に責任を追及できるため、責任の所在を明らかにするためにも重要な書類といえます。

設計書との違い

仕様書と同様に開発に際して作成されることが多い書類が設計書です。上述したとおり仕様書には製品・サービスに求められる条件や内容が記載されているのに対し、設計書には仕様書の内容を実現するための方法が記載されています。建築における図面のように、設計図としての役割を担う書類です。

例として、仕様書に「ログイン時にIDとパスワードを入力する」という仕様を記載した場合、設計書にはIDとパスワードを入力した際にシステムで行う具体的なチェック方法が記載されます。

また、仕様書と設計書は誰が作成するのかも異なります。顧客と受託開発を行う側の企業が共同で作成するのが仕様書です。対して、設計書は仕様書の内容を実現するための作業をまとめ、開発側が作成します。

仕様書の主な種類

仕様書にはいくつかの種類があり、それぞれ目的や記載する内容が異なります。種類によっては顧客側が作成すべきものもあります。以下では、代表的な仕様書の種類として、要求仕様書、機能仕様書、技術仕様書の3種をご紹介しましょう。

要求仕様書

要求仕様書は、システム開発など、プロジェクトに期待されているニーズをまとめた文書です。この要求仕様書をもとに要件定義を進めていきます。要件定義は、プロジェクトに必要な機能をまとめ、具体的な進め方と決める作業のことです。プロジェクトの依頼側が作成します。

機能仕様書

機能仕様書は、要求仕様書のニーズをどのようなソフトウェアの機能で実現するかをまとめた文書です。システム改修の場合は、既存システムの仕様を整理しておきます。

依頼者側と開発側の認識に齟齬がないかを確認するために用いる書類です。開発会社のプロジェクトマネージャーやシステムエンジニアが、依頼者の要望を聞いて作成します。

技術仕様書

技術仕様書は、機能仕様書に記載した機能を開発するための手法をまとめた文書です。プログラマーの間で認識を統一するために用います。開発会社のシステムエンジニアがプログラマーと相談しながら作成するのが一般的です。

仕様書を作成する際のポイント

仕様書には特にルールはありませんが、闇雲に作成しても読みづらく、わかりにくくなってしまいがちです。以下では、実際の開発で活用できる仕様書を作成する際のポイントをご紹介します。

イメージ画像や図を用いる

仕様書にはわかりやすさが求められます。一方で、文章だけではわかりにくくなってしまうケースが少なくありません。仕様書には文章だけで構成しなければならないルールはないため、イメージ画像や図を用いることでこの問題を解消できます。

ビジュアルイメージは、瞬時に内容を判断しやすい記載方法です。特に、言語で細かなコミュニケーションを取りづらいオフショア開発時に有効と考えられています。Webサイトやアプリ開発の際の場合、仕様書にはトップページのイメージ写真、画面遷移図、シーケンス図などを盛り込むと、誰にとっても理解しやすい書類に仕上がります。

5W1Hに沿ってわかりやすく書く

5W1H、つまり、「誰が(who)」「いつ(when)」「どこで(where)」「何を(what)」「どういう目的で(why)」「どのように(how)」行うのかがわかるように仕様書をまとめると、読んだ人にとってわかりやすくなります。具体的には、システム開発の目的、実装する機能、開発体制や役割分担、スケジュール、予算など盛り込んだ仕様書が理想的です。

読み手を意識することも重要です。製品やサービスによっては、専門的な知識を持っていないことも考えられます。例として、開発者ではない顧客向けの仕様書の場合は専門用語をなるべく使用しない、といった意識が必要です。経験豊富なSEの場合、仕様書を数ページ読んだだけで内容の全貌がわかるほどわかりやすくまとまっています。

できる限り細部について記載する

仕様書は、できる限り細部について記載することが重要です。内容に不確定要素が多く仕様書だけで判断できないところは、開発メンバーが随時確認することになります。結果として、コミュニケーションコストの増大を招きます。

また、連携手段が口頭などになりやすい点も問題です。ログが残っていないため、再度別の開発メンバーが同様の確認をする事態が発生することも考えられます。無駄なコミュニケーションコストが発生しないように、細部の情報がまとめられた仕様書が必要です。

作成用のツールやテンプレートを利用する

わかりやすく、多くの情報が組み込まれた仕様書をゼロから作成しようとすると時間がかかります。仕様書作成用のツールやテンプレートを利用すると効率的です。

イメージや図形を入れ込みやすいツールであれば、わかりやすい仕様書を作成できます。また、仕様書の種類別に必要な要件をまとめられた最適なテンプレートを利用するのがおすすめです。

仕様書とはソフトウェア開発に求められる内容をまとめた書類

開発における仕様書定義や重要性についてお話ししました。開発側と顧客との間では、認識の齟齬から問題が発生することがあります。そのため、仕様書によってあらかじめ双方の認識をすり合わせておくことは大切です。また、仕様書をもとにソフトウェアの基本設計である設計書が作成されるため、プロジェクト全体をスムーズに進めるためにもわかりやすく、情報の過不足のない仕様書が求められます。

しかし、経験がない場合は仕様書の作成が困難に感じるかもしれません。YAZでは経験豊富なエンジニアが対応しますので、初めてのシステム・アプリ開発でも仕様書の作成時からサポートいたします。ぜひご検討ください。

この記事を書いた人

ITコラム部YAZ

YAZ ITコラム部

IT業界に関心がある方へ向けて、専門用語を分かりやすく発信しています!

関連記事

おすすめの記事