2023.12.08更新日:2024.08.27
システム開発やソフトウェア開発において重要な存在である「仕様書」。しかし「初めて仕様書を書くことになり、仕様書の書き方がわからない」「書いた仕様書が適切かどうか自信がない」このような悩みを持っている方もいるでしょう。
本記事では、仕様書の種類や作成時のポイント、わかりやすい仕様書を書くコツについて解説します。わかりやすい仕様書を書くことで、開発をスムーズに進めましょう。
仕様書管理は Confluenceがおすすめ!Excelでの設計書管理から Confluenceに導入した企業の事例を読む仕様書とは、システムやソフトウェアの開発において、要求事項や仕様の詳細をまとめた文書です。
開発者と発注者とのコミュニケーションを円滑にするための基本ツールの一つであり、システム開発を進めるにあたって欠かせない、非常に重要な文書です。
仕様書の作成者は、仕様書の種類によって異なります。
システムに対する要望を記載する“要求仕様書”は発注者が作成します。“要求仕様書”は要件定義フェーズの前段階で提出され、これに基づき受注者側はクライアントに対して要件の詳細なヒアリングを行い、要件定義フェーズが進んでいきます。
そして、この要件定義フェーズを経て、より具体的かつ詳細なシステムに対する要求を記載する“外部仕様書”および“内部仕様書”が作成されます。この、“外部仕様書”および“内部仕様書”は、受注者が発注者に向けて作成します。
仕様書にどのような種類があるのかについては後で詳細を解説しますが、各フェーズ・目的によって様々な種類の仕様書があり、作成者もそれに応じて異なる点、特に発注者が作成する仕様書も存在する点は正しく認識しましょう。
仕様書は、プロジェクトに参画している関係者間の認識を揃えるために不可欠な文書です。一般的にシステム開発では多くの人が関与しながらプロジェクトを進めていくため、コミュニケーション不足による誤解や認識相違が生じる可能性が大いにあります。プロジェクトを進めていく中で議論・決定した内容を仕様書という形で文書に残すことで、このようなコミュニケーションミス、「言った言わない問題」を防ぐことに繋がります。
スタートアップや小規模プロジェクトではリソース不足で仕様書の省略が頻発しています。アジャイル開発では迅速な開発と柔軟性を重視するため、詳細な仕様書よりもユーザーストーリーの達成やタスクが重視されますが、仕様書がまったく不要というわけではありません。後で見返す際に、プロジェクトの要件や目標を明確化するために文書化をしておく必要があります。
似たものに「要件定義書」があります。要件定義書は、プロジェクトやシステムの目的を明確化するために、達成すべき全体的な要件やニーズを特定し文書化するものです。仕様書は、要件定義書で定義された要件を具体的な技術的詳細に落とし込みます。
「何を達成するか」(What)を定義するドキュメントで、仕様書は「どのように達成するか(What)」にあたります。
仕様書は、顧客や利用者の要求やシステムの仕様を文書化し、システムやソフトウェアの開発に必要な情報を提供します。
一方設計書は、仕様に基づき、設計者がシステムやソフトウェアをどのように実装するかを詳細に記述します。つまり、仕様書はシステムやソフトウェアで“実現したいこと”を示し、設計書はそれを“実現する方法”を示す、という違いがあります。
仕様書管理は Confluenceがおすすめ!Excelでの設計書管理から Confluenceに導入した企業の事例を読むここでは、システム開発やソフトウェア開発で必要となる3種類の仕様書について解説します。
要求仕様書とは、開発するシステムやソフトウェアに対する要求事項を定めた仕様書です。システムやソフトウェアに対する要件の基となる仕様書であり、発注者側が作成し、受注者側に渡されます。
要求仕様書では、そのシステムで実現したい機能を中心に、操作方法や外部システムとの連携方法といったインターフェースや、ユーザー認証方法といったセキュリティに関する要求事項が記載されます。データのフローや構成をクラス図、オブジェクト図、シーケンス図などを交えてまとめられます。
仕様書管理は Confluenceがおすすめ!Excelでの設計書管理から Confluenceに導入した企業の事例を読む外部仕様書とは、発注者から受領した要求仕様書を受けて受注側のPM(プロジェクトマネージャー)やSE(システムエンジニア)がシステム構造や機能など、利用者の視点からシステムの振る舞いを具体化させた仕様書です。
システムの画面や操作フローなどのUI/UXデザインや、ユーザーが出力する帳票、システムで取り扱う入出力データの種類などが記載されます。
外部仕様書はその名の通り、“そのシステムが外部(ヒトや他のシステム)とどのような形で接点を持つのか”を記載した文書、と覚えておきましょう。
Jiraでプロジェクト管理をしている人へ。JiraからConfluenceのページを作る方法を知る内部仕様書とは、外部仕様書の内容を基にしてシステムの機能を詳細に定義した文書です。一般的に技術仕様書と機能仕様書に分かれ、機能仕様書は開発する製品の内部的な処理やふるまいを、技術仕様書はそれを実現するための技術的な要素を記載します。これらは一般的にSEやプログラマーが作成します。
内部仕様書は外部仕様書と比較して、“そのシステム内で完結する機能や処理の詳細”を記載した文書と理解しましょう。
このうち外部仕様書と内部仕様書は、開発するシステムの動作を記載する文書であることから設計書と同義的に扱われることがあります。
仕様書も設計書もシステム開発やソフトウェア開発を進めるうえで必要な文書ということには変わりないため、その文書の作成目的や記載内容を正しく理解して適切な文書を作成することが重要です。
Jiraでプロジェクト管理をしている人へ。JiraからConfluenceのページを作る方法を知るでは次に、各仕様書を書くにあたってどのようなポイントを意識するとよいのかを解説していきます。
要求仕様書を書くにあたっては、開発するシステム・ソフトウェアを通して達成したいことを明確化することがポイントです。
システム開発を進める際に要件定義フェーズにて開発のスコープを決定します。この要件定義フェーズにおいては、この要求仕様書に基づいて機能や性能を決定していくため、どのような製品を目指すのかを議論・検討できるように、達成したいことを明確に定義しておくことが最も重要となります。
この議論・検討のために、その達成したいことに対する目的や背景なども記載すると、発注者の要求事項や考え方が受注者にも伝わりやすくなります。日付などともに足元の経済状況の変動や世の中の流行等を記載することで、いつ、そのシステムを誰に向けて、どのような形で拡張していきたいのかがより具体的に伝わります。
Jiraでプロジェクト管理をしている人へ。JiraからConfluenceのページを作る方法を知る外部仕様書を書くにあたっては、「要求仕様書に矛盾がなく、技術的に可能な内容をわかりやすく記載すること」がポイントです。
外部仕様書は要求仕様書に従ってシステムの機能を詳細化していくものです。そのため、外部仕様書を書くにあたってはまず、要求仕様書が十分に詳細化されているかどうかを関係者全員で確認します。
また、完成した外部仕様書は発注者に提出するという点も意識する必要があります。提出前の事前レビューにおいてはシステムにあまり詳しくない人にとってもわかりやすい記載となっているかを確認しましょう。またその際、開発チームの各メンバー間における認識のずれなど、個別に検討している段階では気づかなかった問題を合わせて修正することも大切です。
内部仕様書を書くにあたっては、内部仕様書を見ただけでプログラミングが進められる状態となっていることがポイントです。
実際の開発において、プログラミングは内部仕様書を基に進めていきます。そのため、開発チームがシステム開発を進めるにあたって、用語の定義を明確にする、簡潔に伝える、必要に応じて図解を取り入れるなど、わかりやすい形式で作成するよう心掛けましょう。わかりやすく記載することで、将来的にメンテナンスやアップグレードが必要となった際にも役立ちます。
Jiraでプロジェクト管理をしている人へ。JiraからConfluenceのページを作る方法を知る仕様書は、開発プロセスを正確かつ効率的に進めるために不可欠な文書です。しかし、専門用語や複雑な技術内容が多いため、読みやすい仕様書を作成するにはコツが必要です。
ここでは、読みやすい仕様書を作成する際留意すべきポイントを5つ紹介します。
仕様書は、システムやソフトウェアの開発時に必要な要求や仕様の詳細をまとめた文書です。さまざまな種類の仕様書がありますが、いずれも開発者と発注者とのコミュニケーションを円滑にするための基本ツールであり、読みやすい仕様書を作ることがプロジェクトを成功へ導く鍵となります。
今回解説したポイントを意識しつつ、プロジェクトを円滑に進めましょう!
この仕様書作成を効率的に進めていくにあたっては、Confluence(コンフルエンス)という製品がおすすめです。
Confluenceは、仕様書のテンプレートがあります。自社・チームの実態に即してテンプレートをカスタマイズすることができるので、「Confluenceで仕様書を書くならば、この項目も必ず記載する」という社内ルールの設計ができます。
図表の書き込みができる「Whiteboard」機能も備わっています。テンプレート自体のカスタマイズ性も高く、ドキュメントの構造化も簡単といった、仕様書作成に適した機能が多く備わっています。また、ユーザーフレンドリーなUIであり、複数人同時に編集が可能といった点から操作性も非常に高く使いやすいツールです。Confluenceで作成した仕様書を、PDF形式・Word形式でダウンロードすることが可能ですので、非開発者への共有も容易です。
仕様書を書いた経験があまり無い方は、どこから手を付けていいかわからない場合もあると思いますが、テンプレートがあれば誰でも簡単に読みやすい仕様書を作り始めることが可能となるため、非常に便利に使うことができるでしょう。
Confluence(コンフルエンス)-情報共有ツール|製品概要|リックソフト
またプロジェクト管理にJira Software Cloudを使用している場合は、Confluence・Jiraの間で相互にページを紐づけられ、ステータス状況がリアルタイムで同期される機能もあるため、より使い勝手がよくなります。
リックソフトでは、Confluenceの導入実績も豊富、かつ、使い方のサポートも可能ですので、興味がある方はお気軽にお問い合わせ下さい。
読みやすい仕様書を効率的に作成して、さらなる開発効率化を目指しましょう!