LESSON 30分

ストーリー

田中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: ステークホルダーレビュー
  ├── 技術リードからのフィードバック
  ├── セキュリティチームのレビュー
  └── エンジニア代表の意見聴取

評価シートの例

候補項目安全性一貫性効率性合計判定
認証方式の統一55414Must
ログフォーマット35513Must
API設計規約25411Should
推奨言語の絞り込み14510Should
テストカバレッジ基準2349Should
コーディングスタイル1236May
IDE設定0123対象外

標準化ドキュメントの構造設計

推奨される構造

技術標準ドキュメント体系:

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層構造で管理

チェックリスト

  • 標準化の3つの判断軸(安全性、一貫性、効率性)を理解した
  • 各領域の推奨標準化レベルを理解した
  • 標準化しない判断の重要性を理解した
  • 標準化ドキュメントの構造設計を理解した

次のステップへ

次は「言語・フレームワーク戦略」を学びます。Should レベルの標準の中核となる、推奨言語とフレームワークの選定方法を身につけましょう。


推定読了時間: 30分