「設計書、全部書いていませんか?」各工程で"何を書き、何を書かないか"を決めないと、二重管理と形骸化で品質はむしろ落ちます。要件定義・基本設計・詳細設計・テスト(UAT)の工程別に、クラウド/IaC時代の設計書の書き分けを、二次請けの実務目線で整理します。

01「設計書、全部書いていませんか?」

設計書が形骸化する原因は、たいてい「各工程で何を書き、何を書かないかを決めていない」ことにあります。要件定義でAWSサービス名を決め始め、詳細設計でパラメータをExcelに手写経し、テスト仕様書に実装の内部を再掲する——気づけば分厚いのに使えない成果物ができあがります。

特にクラウド/IaC時代は、詳細をコードが持つようになりました。それなのに従来どおり全パラメータを紙で二重管理すると、コードと設計書がずれ、どちらが正か分からなくなります。

現場のコツ:この記事の主張はシンプルです。各工程で「抽象度」を変える。要件定義=What(何を満たすか)、基本設計=How方針(どう実現するか)、詳細設計=How実体(実装できる粒度)、テスト=検証(満たしたか)。そして詳細はコードへ寄せ、設計書は「意図」と「トレーサビリティ」を担う
抽象度:高(What=満たすこと) → 低(実装に近い) 1 要件定義 What・何を満たすか 2 基本設計 How方針・どう実現するか 3 詳細設計 How実体・実装できる粒度 4 テスト・UAT 検証・満たしたか テストは要件を検証(要件→基本→詳細→テストが一本の線=トレーサビリティ) 各工程で「抽象度」を変える / 詳細は IaC(コード)へ寄せる 設計書が担うのは「意図・根拠・トレーサビリティ」。全パラメータの手写経ではない。
図:4工程は「抽象度」が違う。要件=What、基本=How方針、詳細=How実体、テスト=検証。要件が一本の線でテストまで追えること(トレーサビリティ)が背骨。

以下、指定の4工程——要件定義/基本設計/詳細設計/テスト(UAT含む)——で「書くこと/書かないこと」を具体化します。

02早見表 — 工程ごとに「問い」が違う

まず全体像を一枚に。各工程は「答えるべき問い」が違い、それが書く・書かないの境界になります。

工程この工程の問い主に書く書かない/持ち越す
要件定義What:何を満たすか業務・非機能要件、スコープ、前提・制約、SLA/RTO/RPO、成功基準実装技術の選定、AWSサービス名、パラメータ、画面/テーブル定義
基本設計How方針:どう実現するか全体構成図、方式設計(可用性/DR/NW/認証/監視)、サービス選定と根拠、命名/タグ/アカウント方針全パラメータ、IAMポリシーの中身、IPの全ビット、IaCコード
詳細設計How実体:実装できる粒度パラメータの意図・根拠、変更履歴、レビュー観点、トレーサビリティIaCがあれば全パラメータを紙で二重管理しない(コードが実体、表は生成)
テスト(UAT含む)検証:満たしたかテスト方針、要件トレース付きケース、合否基準、非機能テスト、UATシナリオ実装内部の再掲、機械で自動検証できるもの(構文/ポリシー/セキュリティはCIへ)
境界の見分け方は「この工程で決めるには早すぎ/遅すぎないか」。要件で技術を決めるのは早すぎ、詳細で方式を決めるのは遅すぎ。持ち越すべきものは次工程へ回すのが、結局いちばん速い。

03要件定義 — 「満たすこと」を数値と合意で固める

要件定義の問いは What(何を満たすか)。ここで技術を決めたくなりますが、仕事は「実現すべきこと」を数値と合意で固めることです。

書く:

書かない(=基本設計へ持ち越す):

現場のコツ:要件定義でいちばん揉めるのは非機能を曖昧にしたまま進むこと。可用性は「止まると困る」ではなく「月◯分まで」と数値化します(この換算はSLA換算ツールが便利)。ここを固めないと、後工程で必ず"言った言わない"になります。

04基本設計 — 「顧客と合意する方式」を決め切る

基本設計の問いは How方針(どう実現するか)顧客が判断できる粒度で方式を決め、合意する層です。パラメータの海に潜る前に、"方式"を決め切るのが役割。

書く:

書かない(=詳細設計へ持ち越す):

現場のコツ:基本設計は「なぜ」を残す層。サービス選定も方式も、選んだ理由を書いておくと、後任者もレビュアーも顧客も納得できます。ここで決め切れないと、詳細設計が方式の空中戦になります。

05詳細設計 — IaC時代は「コードが実体、紙は意図」

詳細設計の問いは How実体(実装できる粒度)。従来はここでパラメータシート——インスタンス、ストレージ、CIDR、SGルール、IAMロール、タグ、スケーリング閾値、監視項目/閾値、バックアップ世代/保持——を全部書きました。ですが、ここがクラウド/IaC時代の最大の変化点です。

現場のコツ:IaC(Terraform/CloudFormation)があるなら、コードが詳細設計の"実体(正)"です。全パラメータを紙で手写経するのは二重管理——コードと紙がずれ、どちらが正か分からなくなる典型的アンチパターンです。

書く(IaC時代の詳細設計書):

書かない:

現場のコツ:レビューも変わります。構文・命名・セキュリティ・破壊的変更は、目視ではなく「貼るだけ診断」ツールやCI(tflint/tfsec/Checkov)で機械化。人は「意図が要件に合っているか」に集中する——これがIaC時代の詳細設計とレビューの姿です。

06テスト(UAT含む) — 「設計しただけ」を証明に変える

テストの問いは 検証(満たしたか)。要件定義で決めた数値に、実測で答え合わせをする工程です。クラウドの可用性やDRは、"設計しただけ"では証明になりません。

書く:

書かない:

現場のコツ:クラウドの可用性・DRは「実際に落として、戻す」までがセットです。設計書に「Multi-AZだから大丈夫」と書くのではなく、フェイルオーバーとリストアを試験し、要件の数値(RTO/RPO)を満たすことを実測で示す。UATは業務観点に絞り、技術検証と分けるのが品質のコツです。

074工程を貫く3つの原則

工程ごとの「書く/書かない」を支えるのは、次の3原則です。

現場のコツ:設計書の目的は「作る人と受け取る人の認識を一致させ、後から辿れるようにすること」——分厚さではありません。厚い設計書が良い設計書だった時代は、コードが設計を語れるようになった今、終わりつつあります。

08まとめ — 抽象度を変え、詳細はコードへ

要件定義=What、基本設計=How方針、詳細設計=How実体、テスト=検証。各工程で抽象度を変え、書く・書かないを決める。そしてクラウド/IaC時代は、詳細をコードに寄せ、設計書は「意図」と「トレーサビリティ」を担う——これだけで、二重管理と形骸化の多くは消えます。

EMWは二次請けで、設計から構築・テスト・移行まで実務で回してきました(たとえばWindows S2D×Hyper-Vの設計判断)。設計書の型・成果物の再定義・レビュー基準づくりを、御社の工程に合わせて一緒に整えます。

09よくある質問(FAQ)

IaCがあるのに詳細設計書は要りますか?

パラメータを紙で二重管理する詳細設計書は不要です。コードを実体(正)とし、設計書は「なぜその値か」という意図・根拠・変更履歴・レビュー観点を残す役割に切り替えます。パラメータ表が要るならコードから自動生成します。

要件定義にAWSサービス名を書いてはいけませんか?

原則として書きません。要件定義は「何を満たすか(What)」を書く工程で、サービス選定は基本設計の仕事です。ただし「既存がAzure中心」などの前提・制約として書くのは構いません。

テスト仕様書に何を書き、何を書かないべきですか?

要件にひも付いたテストケースと合否基準、可用性/DR/性能などの非機能テスト、UATの業務シナリオを書きます。構文・ポリシー・セキュリティのように機械で自動検証できるものはCI(tfsec/Checkov等)に寄せ、人手確認として重複記載しません。

工程を貫く一番大事な原則は何ですか?

トレーサビリティです。要件番号が基本設計・詳細設計・テストまで一本の線で追えること。これが崩れると「何のための設計か」が分からなくなり、レビューも監査も通りません。

設計書の型・成果物の再定義・レビュー基準づくりでお困りなら、御社の工程に合わせて一緒に整えます。「厚いのに使えない設計書」を、辿れて使える成果物に。

相談する
← ブログ一覧へ戻る