QUIZ 30分

クイズの説明

Step 2「標準化の範囲と深度を決定しよう」の理解度を確認します。標準化スコープ、言語戦略、アーキテクチャ標準、品質標準について問います。

合格ライン: 80%(5問中4問正解)


問題

Q1. 標準化のスコープ判断

以下の4つの項目のうち、組織の技術標準として「Must(必須)」に分類すべきでないものはどれですか?

  • A. 全サービスにおける認証方式(OAuth 2.0 / OIDC)の統一
  • B. CI/CDパイプラインでの脆弱性スキャンの実施
  • C. 新規サービスの開発言語をTypeScriptまたはGoに限定
  • D. ログフォーマットの構造化JSON統一
答えを見る

正解: C

言語の選定は「Should(推奨)」レベルが適切です。認証方式(A)はセキュリティの根幹、脆弱性スキャン(B)はセキュリティリスクの防止、ログフォーマット(D)はサービス横断の監視基盤に不可欠であり、いずれもMust項目です。一方、言語の選定は推奨することで効率性を高めつつも、正当な技術的理由(パフォーマンス要件、特殊なライブラリの必要性等)がある場合は他の言語も選択可能にすべきです。強制すると創造性を阻害し、エンジニアの反発を招きます。


Q2. 言語ポートフォリオ

組織の言語ポートフォリオにおいて「Primary Languages(主要言語)」の数として最も適切なのはどれですか?

  • A. 1言語のみ(統一が最重要)
  • B. 1-2言語(集中投資しつつ用途に応じた柔軟性を確保)
  • C. 3-5言語(多様性を重視し、エンジニアの好みに対応)
  • D. 制限なし(最適な言語を都度選択)
答えを見る

正解: B

Primary Languagesは1-2言語が最適です。1言語のみ(A)では用途の多様性(フロントエンド/バックエンド/データ処理)に対応できません。3-5言語(C)ではナレッジが分散し、Primary(主要)の意味がなくなります。制限なし(D)は標準化の意味がありません。1-2言語に集中投資することで、社内ライブラリ、テンプレート、ナレッジの蓄積効果を最大化しつつ、Secondary/Specialist言語で特定用途をカバーする構成が推奨されます。


Q3. アーキテクチャ原則

「データ所有権」の原則(各サービスは自身のデータストアを所有し、他サービスのDBへの直接アクセスを禁止)を Must 標準とする最大の理由はどれですか?

  • A. データベースのライセンスコストを削減するため
  • B. サービス間の疎結合を確保し、独立した開発・デプロイを可能にするため
  • C. データベース管理者の負荷を軽減するため
  • D. 各チームが好きなデータベースを選べるようにするため
答えを見る

正解: B

データ所有権の原則の最大の目的は、サービス間の疎結合を確保することです。サービスAがサービスBのDBに直接アクセスすると、BのDBスキーマ変更がAに影響し、独立したデプロイができなくなります。API経由のアクセスに限定することで、各サービスは内部のデータモデルを自由に変更でき、独立した開発・テスト・デプロイが可能になります。コスト削減(A)やDB選択の自由(D)は副次的な効果であり、主目的ではありません。


Q4. 品質ゲート

CI/CDパイプラインの品質ゲートとして、以下の設定を導入しました。この中で「PRをブロックする条件として厳しすぎる」ものはどれですか?

  • A. 全テストが通過していること
  • B. テストカバレッジが100%であること
  • C. セキュリティスキャンでCritical CVEがゼロであること
  • D. 1名以上のコードレビューApproveがあること
答えを見る

正解: B

テストカバレッジ100%をPRブロック条件にするのは厳しすぎます。100%カバレッジを目指すと、テストの価値が低い箇所(getter/setter、定数定義等)にもテストを書くことになり、メンテナンスコストが増大します。推奨は60-80%のカバレッジ基準を最低ラインとし、差分(新規追加コード)に対して80%以上を求める形です。全テスト通過(A)、Critical CVEゼロ(C)、レビューApprove(D)はいずれも妥当なブロック条件です。


Q5. セキュリティ品質

セキュリティ品質ゲートにおいて、「シークレット検出(gitleaks等)」をMust(必須)としてCI/CDに組み込む理由として最も適切なものはどれですか?

  • A. コミット履歴に機密情報が含まれると、リポジトリの削除以外に完全な除去が困難なため
  • B. シークレットの検出ツールが無料で利用できるため
  • C. コードレビューで必ず発見できるとは限らないため
  • D. 法令でCI/CDでのシークレット検出が義務付けられているため
答えを見る

正解: A

Gitの特性上、一度コミット履歴にプッシュされた機密情報(APIキー、パスワード等)は、コミットを取り消しても履歴に残り続けます。完全に除去するにはgit filter-branchやBFG Repo-Cleanerによる履歴の書き換えが必要であり、これは非常にコストがかかり、他の開発者への影響も大きいです。したがって「入り口で防ぐ」ことが最も効果的であり、pre-commitフックやCI/CDでの自動検出をMustとします。Cも理由の一つですが、最も本質的な理由はAです。法令での義務付け(D)は現時点では一般的ではありません。


結果

合格(4問以上正解)

Step 2の内容をよく理解しています。標準化スコープの設計、言語戦略、アーキテクチャ標準、品質標準の設計手法を身につけました。次のStep 3「標準策定プロセスを確立しよう」に進みましょう。

不合格(3問以下正解)

Step 2の内容を復習しましょう。特に以下のポイントを重点的に確認してください:

  • 標準化レベル — Must/Should/Mayの使い分け基準
  • 言語ポートフォリオ — Primary/Secondary/Specialist/Legacyの戦略
  • アーキテクチャ原則 — APIファースト、データ所有権、疎結合の意義
  • 品質ゲート — 適切なブロック条件の設定

推定所要時間: 30分