「設計書と仕様書って何が違うの?」という永遠のテーマ
システム開発の現場でよく聞く会話のひとつに「これ、仕様書に書いてあるよね?」「いや、それは設計書に書いてある」というやり取りがある。
エンジニアとしてキャリアを積んでいくと、この違いを理解しているかどうかがプロジェクトの進行に直結する。
この記事では、設計書と仕様書の違いを整理し、それぞれがどんな役割を果たすのかを分かりやすく解説する。混同しがちな二つのドキュメントを正しく理解できれば、チームの会話もスムーズになり、無駄な炎上も防げる。
結論:仕様書は「何を」、設計書は「どうやって」
結論から言えば、仕様書は「何を作るか」を示し、設計書は「どう作るか」を示す。
言い換えれば、仕様書は顧客や利用者の視点で機能や要件を定義するもので、設計書はエンジニアの視点で実装の道筋を示すものだ。
この二つを混同すると、「顧客に渡すべき資料にクラス図を入れる」や「エンジニア向けにユーザーストーリーだけを渡す」といった悲劇が発生する。
仕様書と設計書の違いを具体的に整理する
定義と役割
項目 | 仕様書 | 設計書 |
---|---|---|
目的 | システムが満たすべき要件を明示 | 要件を実現する具体的な方法を記述 |
対象読者 | 顧客、ユーザー、マネジメント層 | 開発者、テスト担当者、運用担当者 |
内容 | 機能一覧、画面仕様、業務フロー | DB設計、クラス設計、処理フロー |
粒度 | 「ユーザーが何をできるか」 | 「プログラムがどう動くか」 |
イメージで理解する
家を建てる例で考えると分かりやすい。
- 仕様書 = 「3LDKでバルコニー付き、駅から徒歩10分」
- 設計書 = 「柱はここ、配管はここ、耐震強度はこれくらい」
つまり、仕様書は注文住宅の希望リスト、設計書は建築士の設計図だ。両方揃わないと家は建たないし、どちらかがズレていると欠陥住宅になる。
事例:プロジェクト炎上の典型パターン
ある開発案件で、顧客は「請求書を自動発行する機能が欲しい」と言った。仕様書には「月末に自動で請求書を生成」とだけ書かれていた。
一方、設計書には「日次バッチで請求データを集計し、PDFを生成」と記載。結果、顧客は「リアルタイムで発行できると思っていた」と激怒。
原因は明確で、仕様書に「リアルタイム or バッチ」という要件が明記されていなかったのだ。
仕様書で「何を」正しく定義し、設計書で「どうやって」を具体化する。この順番を誤ると、こうしたすれ違いが起きる。
データで見る「要件の曖昧さ」のリスク
IPA(情報処理推進機構)の調査によれば、プロジェクト失敗の最大要因は「要件の不明確さ」である。全体の約3割を占め、次いで多いのが「設計不備」。
つまり、仕様書と設計書の役割を混同することは、失敗要因ランキング1位と2位を同時に踏むようなものだ。
統計的にも、仕様と設計の線引きを曖昧にすることは極めて危険である。
どう整理して使い分けるか
では、現場でこの2つをどう切り分ければいいのか。ポイントは以下の通りだ。
- 仕様書は顧客にレビューしてもらう ― ビジネス要件が満たされているか確認
- 設計書は開発チームでレビューする ― 技術的に実現可能かを確認
- 仕様書で曖昧な表現を避ける ― 「自動で」「柔軟に」などは禁止ワード
- 設計書は運用担当者も読めるレベルで記述 ― 保守性を意識する
まとめ:仕様と設計の線引きが成功のカギ
仕様書と設計書は似て非なるものだ。
仕様書は「何を作るか」、設計書は「どう作るか」。この線引きを正しく理解し、関係者全員で共有することがプロジェクト成功の第一歩となる。
もし次に「これって仕様書に書くの?設計書に書くの?」と迷ったら、ぜひこの記事で示した基準を思い出してほしい。そうすれば、あなたのプロジェクトは一歩炎上から遠ざかるはずだ。