Chapter 5
開発環境構成ルール

このChapterで定義するのは、
開発環境を用途と責任で明確に分離するためのルールである。
環境を分ける目的は、
動かすためでも、見せるためでもない。
判断・実験・説明・本番運用を混在させないこと
それ自体が目的である。
5-1. 環境は「技術」ではなく「責任範囲」で分ける
環境分離は、
インフラや設定の都合で行うものではない。
本Wikiでは、
環境=責任範囲と定義する。
-
何をしてよい環境か
-
何をしてはいけない環境か
-
事故が起きた場合、誰の責任か
これを明確にするために、環境を分ける。
5-2. Dev 環境の役割
Dev は、
実装と実験のための環境である。
-
コードを書く
-
試す
-
壊す
ことを前提とする。
Dev 環境のコードは、
未確定の判断を含んでいてよい。
5-3. Staging 環境の役割
Staging は、
判断結果が正しく統合されているかを確認する環境である。
-
複数判断の組み合わせ
-
非機能要件の確認
-
リリース前の最終チェック
を行う。
Staging では、
新しい判断を追加してはいけない。
5-4. Demo 環境の役割
Demo は、
説明と合意形成のための環境である。
-
顧客への説明
-
関係者への共有
-
操作イメージの提示
が目的であり、
検証や実験の場ではない。
Demo 環境のコードは、
見せるために整えられていてよいが、
本番運用に混入してはならない。
5-5. Production 環境の役割
Production は、
実運用のための唯一の環境である。
-
確定した判断のみが存在する
-
実験コードは存在しない
-
説明用の調整は行わない
Production に入るコードは、
すでに判断が完結しているものだけである。
5-6. 環境を混在させてはいけない理由
環境を混在させると、
-
どこで何を確認したのか分からなくなり
-
誰の判断で入ったコードか不明確になり
-
事故時の切り分けができなくなる
環境分離は、
トラブルを防ぐためではなく、
トラブル時に即断するための構造である。
まとめ
-
環境は用途と責任で分ける
-
Dev は実装と実験の場
-
Staging は検証と統合確認の場
-
Demo は説明と合意形成の場
-
Production は実運用のみ
-
判断・実験・説明を混在させない





