2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

できるエンジニア(になりたいぼく)の「仕様書の読み方」

2
Last updated at Posted at 2026-01-19

できるエンジニアの「仕様書の読み方」:読む前に“誤読しない型”を作ろう

設計書・仕様書って、読むだけで疲れますよね。しかも、ちょっとした読み違いがそのまま実装ミスになって、手戻りや障害につながる。だからこそ、できるエンジニアほど「読むテクニック」より先に「誤読しないための型」を持っています。

この記事では、設計書・仕様書を短時間で正確に読み解き、実装とテストに落とし込むまでの手順をガイドとしてまとめます。難しい話より、現場でそのまま使える形に寄せます。


0. まず結論:仕様書は“文章”ではなく“決まりごと”として読む

仕様書を真面目に全部読もうとすると、だいたい迷子になります。

ポイントは、文面を追うのではなく、次の順番で「決まりごと」に変換することです。

最初に、目的と範囲を確定して「書いてあること」と「書いてないこと」を分ける。
次に、全体地図を作って、詳細を読んでも迷わない状態にする。
そのうえで、振る舞いを「条件→結果」の規則として抜き出す。
最後に、非機能(性能やセキュリティなど)と曖昧さを拾い、質問と作業とテストに落とし込む。

この型を持っていると、文書の出来が多少イマイチでも、安定して誤読を減らせます。


1. 目的と範囲を確定して「書いてある/書いてない」を分ける

仕様書と一口に言っても、中身は色々です。要求(何を実現するか)、外部仕様(画面やAPIの振る舞い)、内部設計(構造や処理の流れ)で、読み方も、確認すべき粒度も変わります。

ここで最初にやるのは、表紙・改訂履歴・対象機能・対象外の確認です。大事なのは「この文書が決めていること」と「この文書が決めていないこと」を分けることです。

要求や仕様を扱う標準(たとえば ISO/IEC/IEEE 29148)でも、要求は後工程の誤解を生まない形で整理し、管理することが重要だとされています。だから、読み手側も「この文書が何を決める文書か」を最初に固定したほうが安全です。

実務でよく効くチェックの仕方は、次の2行を自分のメモの一番上に書くことです。

「この文書で確定していること:___」
「この文書では未確定(要確認)のこと:___」

この2行が空っぽのまま読み始めると、書いてないことを脳内で補完して、誤読が起きやすくなります。


2. いきなり詳細に入らない:まず「全体地図」を1枚で作る

次にやるのは、全体像を先に作ることです。詳細から入ると迷子になりがちです。

ここでおすすめは、A4 1枚に「利用者の流れ」「データの流れ」「担当境界」をざっくり描くことです。

具体的には、登場人物(利用者の種類、管理者、外部システム)、主要な操作、主要なデータを箱にして、矢印でつなげば十分です。この“地図”があると、細部を読んでも迷子になりません。

地図を先に作るだけで、読み取りの精度が上がります。

ここまでできたら、ようやく詳細に入ります。


3. 仕様の核心は「振る舞い」:文章を「条件→結果」に変換して読む

仕様の核心は「振る舞い」です。振る舞いとは、入力に対して何が起きて、何が返るかです。

画面・API・バッチのどれでも、「入力」と「結果」と「例外」をセットで抜き出すイメージです。

このパートでやるべきことは、文章を眺めるのではなく、全部「条件→結果」の規則にして抜き出すことです。たとえば、次のような形です。

未ログインのとき、ログイン画面へ誘導する。
権限がないとき、操作を拒否してエラーを返す。
必須が欠けたとき、入力エラーとして扱う。

ここで地味に効くのが、仕様の言葉の強さを揃えることです。IETF の RFC 2119 では MUST(必須)や SHOULD(推奨)といった“要求の強さ”の解釈が定義されています。仕様書に「必ず」「なるべく」「してよい」などが混ざっていたら、読み手の頭の中で勝手に強さが変わって誤読が起きます。

読み取るときは、メモ上で「必須/推奨/任意」のどれかに寄せて書くと混乱が減ります。

読み取った規則は、次のテンプレに入れてメモすると整理しやすいです。

条件:
結果:
補足(例外や優先順位):

4. 手戻りの多くは「非機能の見落とし」:決まってないなら“未確定”として拾う

多くの手戻りは、非機能の見落としから起きます。非機能というのは、機能そのものではなく「品質や制約」の話です。たとえば、速さ、落ちにくさ、セキュリティ、運用のしやすさ、互換性などです。

ISO/IEC 25010 の品質モデルでも、性能効率、信頼性、保守性、セキュリティなど、複数の品質特性として整理されています。仕様書に明記がない場合でも「決まっていないこと」として扱い、確認対象に入れるのが安全です。

表にして拾うと早いです。

分類 例 まず確認すること
性能 画面表示、API応答 目標時間、ピーク時、計測方法
可用性 障害時の復旧 復旧目標、冗長化、復旧手順
セキュリティ 認証・権限、ログ 誰が何をできるか、監査要件
運用 監視、アラート 何を監視し、誰が対応するか

ここでのコツは、答えがまだないなら「未確定」と書いてしまうことです。未確定を見える化できる人ほど、後工程の事故を減らせます。


5. 曖昧さの棚卸し:質問は「思いつき」ではなく「型」で出す

仕様書は完全ではありません。だからこそ、ここで差が出ます。質問は思いつきで投げるより、分類して短く出すと通りやすいです。

よくある曖昧さは、前提が不明、境界が不明、例外が不明、優先順位が不明の4つに集約できます。

質問を出すときは、次の4点セットにすると強いです。

現状の理解:私は〇〇だと理解しました。
不明点:ただ、△△が文書から読み取れません。
選択肢:選択肢はA/B/Cが考えられます。
推奨:私は理由(運用、監査、コスト等)からBを推奨します。

この形にすると、相手は「何を決めればいいか」が一目で分かります。結果として返事も速くなり、合意形成が前に進みます。


6. 読んだらすぐ落とす:実装とテストは“同時に”作る

仕様を読んだら、その場で「作業の分割」と「テスト観点」まで作ります。コツは、正常系より先に異常系を拾うことです。

たとえば画面機能なら、部品(コンポーネント)、状態管理、API連携、入力チェック、表示分岐の単位に分けます。APIなら、入力検証、権限確認、保存、例外処理、ログという単位に分けます。

テスト観点は、次の表を埋めるだけでも十分に強くなります。

観点 例 期待する結果
必須欠落 必須が空 入力エラーになる
権限なし ロール違い 拒否される
境界値 最小、最大 正常またはエラーが明確
二重送信 連打 重複しない、または扱いが仕様通り

この段階で「テストで何を見るか」が見えると、実装の品質はかなり安定します。


7. 最後に“共有できる形”で残す:自分のメモで終わらせない

読めたとしても、頭の中にしかないと、チームは確認できません。設計書が読める人は、読んだ内容を「他人が検証できる形」に変換できます。

最低限、「要約」「未確定事項」「影響範囲」の3点があれば十分です。

テンプレにすると、毎回ラクです。

要約:
未確定:
影響範囲:

これがあるとレビューが速くなり、認識ズレが減ります。結果として、自分が一番ラクになります。


まとめ:仕様書読みは「誤読しない型」を作る作業

設計書・仕様書の読み解きは、文面を丁寧に追う作業ではなく、目的と範囲を確定し、全体地図を作り、振る舞いと非機能を規則として抜き出し、曖昧さを質問に変換し、実装とテストに落とし込む作業です。

この手順を型として持てば、ドキュメントの質が多少低くても、安定して成果を出せるようになります。次に仕様書を読むとき、まずは「地図を1枚作る」から試してみてください。読むスピードと安心感が変わります。


参考文献

ISO/IEC/IEEE 29148:2018 Requirements engineering(概要)
https://www.iso.org/standard/72089.html

RFC 2119: Key words for use in RFCs to Indicate Requirement Levels
https://datatracker.ietf.org/doc/html/rfc2119

Google Engineering Practices Documentation
https://google.github.io/eng-practices/

ISO/IEC 25010(品質モデルの概要)
https://iso25000.com/en/iso-25000-standards/iso-25010

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?