ストーリー
田
田中VPoE
棚卸しで現状が明らかになった。次は「何を標準化するか」を決める。これが最も難しいステップだ
田
田中VPoE
それは最悪のアプローチだ。全部を標準化すると、標準が膨大になり誰も読まない。更新が追いつかず形骸化する。エンジニアの自律性が失われ、モチベーションが低下する。「何を標準化しないか」を決めることの方が重要だ
田
田中VPoE
3つの判断軸がある。「安全性」「一貫性」「効率性」だ。この軸で組織にとっての重要度を評価し、本当に標準化すべき領域を絞り込む
標準化の判断フレームワーク
3つの判断軸
| 判断軸 | 基準 | 標準化すべき場合 | 標準化不要な場合 |
|---|
| 安全性 | セキュリティ・法令遵守に関わるか | 認証方式、暗号化、個人情報の扱い | IDEの選定、コミットメッセージ |
| 一貫性 | チーム間の連携に一貫性が必要か | API設計、ログフォーマット、エラーハンドリング | チーム内のコードスタイル |
| 効率性 | 標準化により組織全体の効率が上がるか | 言語選定、CI/CDパイプライン、テスト戦略 | 個人の開発環境設定 |
標準化の深度マトリクス
標準化の深度:
強制 ──┐
│ セキュリティ基準
│ 認証・認可方式
│ 機密データの取り扱い
│─────────────────────── Must(必須)
│ API設計規約
│ ログ・監視標準
│ デプロイメントプロセス
│ 推奨言語・フレームワーク
│─────────────────────── Should(推奨)
│ コーディングスタイル
│ テストフレームワーク
│ 開発ツール
任意 ──┘─────────────────────── May(参考)
標準化すべき領域の特定
領域別の推奨標準化レベル
| 領域 | 推奨レベル | 理由 |
|---|
| セキュリティ | Must | 脆弱性はサービス全体に影響。妥協不可 |
| 認証・認可 | Must | 統一しないと認証基盤が成り立たない |
| ログフォーマット | Must | 横断的な監視・分析に一貫性が必須 |
| API設計 | Should | チーム間連携に一貫性が必要だが、柔軟性も残す |
| 言語・フレームワーク | Should | ナレッジ共有と人材流動性のため推奨するが、正当な理由があれば逸脱可 |
| テスト戦略 | Should | 品質の底上げに必要。具体的なツールは委ねる |
| コーディングスタイル | May | チーム内で統一されていれば十分 |
| 開発環境 | May | 個人の生産性に直結。強制は逆効果 |
| ドキュメント形式 | May | 最低限の構造を推奨するが強制しない |
標準化しない判断も重要
| 標準化しない方がよい領域 | 理由 |
|---|
| エディタ・IDEの選定 | 個人の好みと生産性に直結。強制は反発を招く |
| デスクトップOSの選定 | Mac/Linux/Windows の選択は個人に委ねる |
| 開発手法(スクラム/カンバン等) | チームの特性に応じて最適な手法が異なる |
| 社内ツールの技術選定 | ビジネスクリティカルでない領域は実験の場とする |
標準化の範囲を決めるプロセス
4ステップのプロセス
Step 1: 候補の列挙
└── 棚卸し結果から標準化候補を網羅的に列挙
Step 2: 重要度の評価
├── 安全性スコア(1-5)
├── 一貫性スコア(1-5)
└── 効率性スコア(1-5)
Step 3: レベルの判定
├── 合計12点以上 → Must候補
├── 合計8-11点 → Should候補
└── 合計7点以下 → May候補 or 対象外
Step 4: ステークホルダーレビュー
├── 技術リードからのフィードバック
├── セキュリティチームのレビュー
└── エンジニア代表の意見聴取
評価シートの例
| 候補項目 | 安全性 | 一貫性 | 効率性 | 合計 | 判定 |
|---|
| 認証方式の統一 | 5 | 5 | 4 | 14 | Must |
| ログフォーマット | 3 | 5 | 5 | 13 | Must |
| API設計規約 | 2 | 5 | 4 | 11 | Should |
| 推奨言語の絞り込み | 1 | 4 | 5 | 10 | Should |
| テストカバレッジ基準 | 2 | 3 | 4 | 9 | Should |
| コーディングスタイル | 1 | 2 | 3 | 6 | May |
| IDE設定 | 0 | 1 | 2 | 3 | 対象外 |
標準化ドキュメントの構造設計
推奨される構造
技術標準ドキュメント体系:
tech-standards/
├── README.md # 標準の目的、適用範囲、レベル説明
├── must/ # Must(必須標準)
│ ├── security.md # セキュリティ基準
│ ├── authentication.md # 認証・認可標準
│ ├── logging.md # ログ標準
│ └── data-handling.md # データ取り扱い基準
├── should/ # Should(推奨標準)
│ ├── languages.md # 推奨言語・フレームワーク
│ ├── api-design.md # API設計規約
│ ├── testing.md # テスト戦略
│ ├── architecture.md # アーキテクチャパターン
│ └── deployment.md # デプロイメント標準
├── may/ # May(参考ガイドライン)
│ ├── coding-style.md # コーディングスタイル
│ ├── documentation.md # ドキュメント作成ガイド
│ └── tooling.md # 推奨ツール一覧
├── decisions/ # ADR(アーキテクチャ決定記録)
│ └── NNNN-title.md
└── radar/ # テクノロジーレーダー
└── current.md
各ドキュメントの共通テンプレート
| セクション | 内容 |
|---|
| 概要 | この標準が何を定めているか |
| 適用範囲 | どのサービス・チームに適用されるか |
| レベル | Must / Should / May |
| 標準の内容 | 具体的な規定 |
| 根拠 | なぜこの標準が必要か |
| 例外処理 | 逸脱する場合のプロセス |
| 関連文書 | 参照すべき他の標準やADR |
| 更新履歴 | いつ、誰が、何を変更したか |
「標準化の範囲を決めることは、組織の技術的自由度の設計だ。どこまで自由を残し、どこを揃えるか。この判断がエンジニアリング組織の性格を決める」 — 田中VPoE
まとめ
| ポイント | 内容 |
|---|
| 3つの判断軸 | 安全性、一貫性、効率性で標準化の必要性を評価 |
| 3つのレベル | Must(強制)、Should(推奨)、May(任意) |
| 標準化しない判断 | 個人の生産性に直結する領域は標準化しない |
| ドキュメント構造 | must/should/mayの3層構造で管理 |
チェックリスト
次のステップへ
次は「言語・フレームワーク戦略」を学びます。Should レベルの標準の中核となる、推奨言語とフレームワークの選定方法を身につけましょう。
推定読了時間: 30分