EXERCISE 90分

ストーリー

田中VPoE
スコープ設計、言語戦略、アーキテクチャ標準、品質標準 — すべてを統合して「技術標準ドキュメント」の初版を設計してもらう
あなた
Step 1の棚卸し結果も踏まえて、TaskFlow社向けの標準を作るんですね
田中VPoE
そうだ。ただし「机上の空論」にしないでくれ。標準を作っても現場が受け入れなければ意味がない。棚卸しで明らかになった課題を解決しつつ、エンジニアが「これなら納得できる」と思えるバランスを目指せ

ミッション概要

項目内容
演習タイトル技術標準ドキュメント設計
想定時間90分
成果物技術標準ドキュメント(言語戦略 + アーキテクチャ標準 + 品質標準)
対象組織TaskFlow株式会社(Step 1の演習と同じ)

Mission 1: 言語・フレームワーク戦略を策定する

要件

TaskFlow社の棚卸し結果(言語7種、FW6種)を踏まえ、以下を策定してください。

  1. 言語ポートフォリオ(Primary / Secondary / Specialist / Legacy の分類と根拠)
  2. 用途別マッピング(各用途での推奨言語・フレームワーク)
  3. 移行計画の概要(Hold/Legacy技術からの移行パス)
解答例

言語ポートフォリオ

分類言語根拠
PrimaryTypeScriptフロントエンド全体 + バックエンドの一部。エコシステム最大、採用容易
PrimaryGo高パフォーマンスAPI。既に2チームで実績。採用市場も拡大中
SecondaryPythonデータパイプライン専用。ライブラリ群が不可欠
SpecialistKotlin / Swiftモバイルネイティブ専用
LegacyJava課金サービスのみ。新規採用禁止、TypeScript/Goへの移行を計画
LegacyNode.js (Express)通知・連携サービスのみ。Go/TypeScript(NestJS)への移行を計画

用途別マッピング

用途推奨言語推奨フレームワーク
WebフロントエンドTypeScriptReact + Next.js
バックエンドAPI(高負荷)GoEcho + gRPC-Go
バックエンドAPI(標準)TypeScriptNestJS
データパイプラインPython 3.11+Airflow + pandas
モバイルKotlin / SwiftJetpack Compose / SwiftUI
インフラツールGo標準ライブラリ

Mission 2: アーキテクチャ標準を設計する

要件

TaskFlow社のサービスアーキテクチャ標準を設計してください。

  1. アーキテクチャ原則(5つ以上。各原則に「なぜ必要か」の根拠を付記)
  2. API設計規約(バージョニング、エラーレスポンス、認証方式)
  3. サービス構造テンプレート(推奨ディレクトリ構造)
解答例

アーキテクチャ原則

原則内容根拠レベル
APIファーストサービス間は必ずAPI経由棚卸しで直接DB参照が2件発見された。疎結合を確保Must
データ所有権サービスは自身のDBのみ操作課金サービスがユーザーDBに直接アクセスしている問題を解消Must
環境非依存設定は環境変数で注入検索チームのサービスがハードコードされた接続先を持つMust
オブザーバビリティ構造化ログ+メトリクス+トレース監視ツールがDatadog/CloudWatchで分裂している問題の解消Must
ヘキサゴナル設計新規サービスはポート&アダプタテスタビリティ向上、インフラ依存の分離Should

エラーレスポンス標準

{
  "type": "https://taskflow.example.com/errors/TFL-VAL-001",
  "title": "Validation Error",
  "status": 400,
  "detail": "project_name は3文字以上64文字以下で入力してください",
  "instance": "/v1/projects",
  "error_code": "TFL-VAL-001",
  "trace_id": "abc123def456"
}

Mission 3: 品質標準を設計する

要件

TaskFlow社の品質標準を設計してください。

  1. テスト品質基準(カバレッジ目標、テスト種別ごとの基準)
  2. CI/CDパイプラインの品質ゲート(PRマージの条件)
  3. セキュリティチェックリスト(自動化すべきチェック項目)
解答例

テスト品質基準

指標最低基準(Must)推奨値(Should)対象
ユニットテストカバレッジ60%80%全サービス
ビジネスロジック層カバレッジ80%90%domain/usecase
E2Eテストクリティカルパス3本以上主要シナリオ10本以上プロダクト全体
テスト実行時間10分以内5分以内CIパイプライン

CI/CD品質ゲート

ゲート条件ブロック
ビルドコンパイル成功マージ不可
テスト全テスト通過マージ不可
カバレッジ60%以上(差分は80%以上)マージ不可
リンターESLint / golangci-lint エラーゼロマージ不可
セキュリティCritical CVE ゼロマージ不可
シークレット機密情報検出ゼロマージ不可
レビュー1名以上のApproveマージ不可

セキュリティチェックリスト

チェックタイミングツール自動化
依存関係脆弱性PR / 日次Trivy自動
SASTPRSemgrep自動
シークレット検出pre-commit / PRgitleaks自動
コンテナスキャンビルド時Trivy自動
ライセンスチェックPRlicense-checker自動
DASTステージング(週次)OWASP ZAP半自動

達成度チェック

観点達成基準
言語戦略の妥当性棚卸し結果を踏まえた合理的なポートフォリオ設計
移行計画Legacy技術からの移行パスが明示されている
アーキテクチャ原則原則の根拠が組織の課題と紐づいている
品質基準の具体性数値目標が設定されている
セキュリティ自動化すべきチェックが網羅されている
バランスMust/Should/Mayが適切に使い分けられている
実現可能性現状から段階的に移行できる計画になっている

推定所要時間: 90分