Skip to content

ドキュメントフェーズ概要

Document Phases Overview

本ドキュメントは、要求 → 要件 → 仕様 → 設計 → 実装 の各フェーズにおける整理内容について定義します。

フェーズ本質
要求なぜやりたいか
要件何を満たす必要があるか
仕様どう振る舞うべきか
設計どう実現するか
実装現実に適用・定着させる

定義に当たっては、高齢のおばあちゃんが一人で営んでいる駄菓子屋の業務システム構築を想定して、 例を記述します。おばあちゃんの駄菓子屋では、常連の子どもは多いが、

商品の値段計算, 在庫の把握, 売上の記録

が負担になってきている。そこで 駄菓子屋を無理なく続けられる仕組み を考えたい、というシナリオです。

1. フェーズ全体対応表

フェーズ用語5W1H対象定義
1要求(Needs)Why業務・人目的・価値・困りごと
2要件(Requirements)What(条件)業務+システム満たすべき条件
3仕様(Specifications)What(振る舞い)業務+システム振る舞いの定義
4設計(Design)How(方式)業務+システム実現方式・構造
5実装(Implementation)How(具現)業務+システム実行・適用

2. フェーズ横断で特に危険なアンチパターン

2.1. 典型的なアンチパターン

フェーズ典型的失敗
要求目的を言語化しない
要件条件を検証可能にしない
仕様振る舞いを曖昧にする
設計業務を設計しない
実装現場に適用しない

2.2. 横断的なアンチパターン

アンチパターン影響
Why → What → How のトレースがない変更に耐えない
粒度が混在読めない・更新できない
用語定義がない人・AIともに誤解
非機能を後回し使えない完成品

2.3. 補足

地図を持たずに歩き出せば、 速く歩ける人ほど、遠くまで迷う。

多くの失敗は能力不足ではなく、 目的(Why)・条件(What)・方法(How)を 区別せずに進んでしまうことで起きる。 本ガイドは、その混乱を防ぐための思考の整理である。

3. 要求(Needs)

業務の目的・価値を定義するフェーズ

観点内容(駄菓子屋の例)
困りごと暗算や在庫管理がつらくなってきた
続けたい理由子どもとの交流、地域の居場所
ゴール無理せず駄菓子屋を続けられること

3.1. 要求フェーズのアンチパターン

アンチパターン原因起きる問題駄菓子屋の例
要求を書いたつもりで「手段」を書くWhyとHowの混同目的が不明確「タブレットを導入したい」が要求になる
要求を一文スローガンで終わらせる合意の浅さ判断軸が残らない「店を続けたい」だけで理由がない
要求をエンジニアに丸投げ役割誤解価値が実装に反映されない「あとはいい感じに」

3.2. 補足

マゼラン艦隊は、 航路や手段を失っても航海を続けられた。 それは「西回りで香料諸島へ到達する」という 目的が明確に共有されていたからである。

要求フェーズの失敗は逆である。Why が文書として残らなければ、途中で正しさを判断できなくなる

4. 要件(Requirements)

要求を満たすための条件を定義するフェーズ

種別要件(例)
業務要件子どもを待たせないこと
業務要件会計ミスを防ぐこと
システム要件合計金額を正しく算出できること
制約・前提機械が苦手でも使えること

制約・前提も要件として明文化する。

4.1. 要件フェーズのアンチパターン

アンチパターン原因起きる問題駄菓子屋の例
要件を飛ばす早く作りたいスコープ崩壊いきなりUI設計に入る
要件が抽象的検証意識不足受入不能「簡単に使える」だけ
要件に設計を混ぜるShall/How混同変更不能「SQLiteで在庫管理する」

4.2. 補足

測定できない条件は、管理も検証もできない。

要件が検証可能な条件として定義されなければ、それは合意でも約束でもない。 要件フェーズの本質的な失敗は、「満たすべき条件」が検証可能でないことである。

5. 仕様(Specifications)

要件を満たすための振る舞いを定義するフェーズ。業務仕様とシステム仕様を区別する。 業務仕様は、現場のルール(人の判断を含む)。システム仕様は、入力・状態・出力として観測可能な振る舞い。

5.1. 業務仕様(Business Specification)

条件業務の振る舞い
子どもが商品を持ってきたら店主が合計金額を提示する
お金が足りない場合販売は成立しない
販売成立時在庫を減らす
営業終了時その日の売上を確認する

5.2. システム仕様(System Specification)

条件システムの振る舞い
商品を選択したとき合計金額を表示する
会計確定時在庫数を1減らす
在庫が0のとき選択不可とする
日付変更時日次売上を集計する

5.3. 仕様フェーズのアンチパターン

(業務仕様・システム仕様)

アンチパターン原因起きる問題駄菓子屋の例
業務仕様を書かない暗黙知前提現場不適合売上確認のやり方が未定義
画面仕様=仕様だと思う視覚偏重ルール抜け例外処理がない
例外・境界を書かない正常系思考現場停止お金が足りない時が未定義

5.4. 補足

「気をつけて運転せよ」という指示だけでは、交通は成立しない。

信号・優先・停止線といった具体的な振る舞いが定義されて、初めてルールになる。 仕様フェーズの本質的な失敗は、振る舞いを具体的に定義しないことである。

6. 設計(Design)

仕様をどう実現するかを決めるフェーズ。業務設計とシステム設計に分けて整理する。

観点業務設計システム設計
会計商品をまとめて一括会計会計処理コンポーネント
在庫営業後に在庫確認在庫管理データ構造
操作声出し確認を行う大きなボタンUI
責務店主の判断を明確化処理を自動化

6.1. 設計フェーズのアンチパターン

アンチパターン原因起きる問題駄菓子屋の例
設計=IT設計だけ業務軽視業務が壊れる新レジ導入で会計が遅くなる
設計で仕様を変更フェーズ逆転合意崩壊設計段階で会計ルールを変える
将来変更を考えない近視眼保守不能商品追加が毎回改修

6.2. 補足

なぜそこに柵があるか分からないなら、まずそれを理解するまで壊してはならない。

仕様(What)を理解せずに設計(How)を変えると、本来守るべき目的まで壊してしまう。 設計フェーズの本質的な失敗は、How が勝手に What を書き換えることである。

7. 実装(Implementation)

設計した内容を現実に適用するフェーズ。業務実装とシステム実装を区別する。

観点業務実装システム実装
会計新しい会計手順に慣れる会計ロジック実装
在庫紙メモをやめる在庫更新処理
運用毎日売上を確認日次集計機能
検証実務で問題ないか単体・結合テスト

7.1. 実装フェーズのアンチパターン

アンチパターン原因起きる問題駄菓子屋の例
作ったら終わり業務実装軽視使われない新手順の説明なし
現場検証をしないテスト偏重運用事故実際はボタンが小さい
実装で仕様を補完文書不足属人化例外対応を口頭で処理

7.2. 補足

処方箋は、書かれただけでは患者を治さない。 実際に服用され、継続されて初めて効果を持つ。

実装フェーズの本質的な失敗は、設計した内容が現実に適用されないことである。

8. おわりに

正しい答えは、正しい問いと順序からしか生まれない。

要求から実装までを一貫して整理することは、遠回りではない。最短で「使われる成果」にたどり着くための道です。