仕様書のテンプレート|AIが読める7つの項目

目次
仕様書のテンプレートを探すと、画面項目、機能一覧、データ定義など、立派なひな形がいくつも見つかる。ところが、空欄を埋めただけでは開発が始められないことがある。
「申請を登録する」と書いてあっても、誰が登録できるのか。承認前後で編集できるのか。入力が欠けたら止めるのか。ここが決まっていなければ、実装者もAIも都合よく補完する。
必要なのは、ページ数の多い文書ではない。目的、権限、入力、判断、出力、例外、合格条件がつながった仕様書だ。まずは1機能につき1枚でよい。
ここで扱う7項目は、1機能の機能仕様をレビューするための最小セットである。性能、可用性、セキュリティ、監査、運用、データ定義、外部インタフェースは別紙で管理し、この1枚から関連先をたどれるようにする。
仕様書のテンプレートは「項目数」で選ばない
仕様書は、読む人が同じ判断へたどり着くための道具である。IPAの要件定義ドキュメントでも、業務、データ、状態遷移、外部インタフェース、非機能要件など、複数の成果物を関連づけて不整合を防ぐ考え方が示されている。
だから、すべてを一つの巨大な表へ押し込む必要はない。大切なのは、各項目のつながりを追えることだ。
たとえば「経費申請を登録する」という機能なら、次の関係を確認する。
- 目的を達成するために、誰が操作するか
- 操作時に、何を入力するか
- 入力と現在の状態から、何を判断するか
- 判断の結果として、何を保存・表示・通知するか
- どの条件では進めず、人へ戻すか
- 何を確認できれば、完成とみなすか
必要な関係を追跡できれば、画面仕様やAPI仕様へ展開しやすい。超上流の成果物事例も、業務フロー、データ、画面・帳票、外部接続を別々に見ながら関係を確かめる構成になっている。
AIが読める仕様書に必要な7つの項目
以下の7項目を、1機能ごとに整理する。最初から完璧を狙わず、未決事項は「未定」と書き、決める担当者と期限を添える。
1. 目的
機能の名前ではなく、利用者が達成したい状態を書く。
悪い例は「経費申請機能を作る」。良い例は「従業員が領収書と利用目的を登録し、承認者が支払可否を判断できるようにする」だ。
目的があると、後から追加された項目が本当に必要か判断できる。目的に寄与しない機能は、別の仕様へ分ける候補になる。
2. 利用者と権限
役割ごとに、閲覧、作成、更新、承認、取消の可否を書く。「管理者は全部できる」では粗すぎる。
| 役割 | 閲覧 | 作成 | 更新 | 承認 | 取消 |
|---|---|---|---|---|---|
| 申請者 | 自分の申請 | 可 | 下書き・差戻し時のみ | 不可 | 申請中のみ |
| 承認者 | 担当部門 | 不可 | 不可 | 可 | 不可 |
| 経理 | 承認済み | 不可 | 支払情報のみ | 不可 | 支払前のみ |
この表があると、画面の表示制御だけでなく、API側で拒否すべき操作も見える。
3. 入力
項目名だけでなく、型、必須条件、入力元、例をセットにする。
