LESSON 30分

ストーリー

田中VPoE
標準化のスコープが決まった。次は具体的な中身に入る。まずは最も議論を呼ぶ「言語・フレームワーク戦略」だ
あなた
言語の選定はエンジニアの間で宗教戦争になりがちですよね
田中VPoE
だからこそ感情ではなく、データと基準で判断する必要がある。「自分が好きだから」ではなく「組織として最適だから」という論理で語れなければならない
あなた
具体的にはどんな基準で判断するんですか?
田中VPoE
5つの基準がある。エコシステム、採用市場、チーム内実績、パフォーマンス特性、学習コスト。これを組み合わせて、組織に最適な言語ポートフォリオを設計する

言語ポートフォリオの考え方

なぜ1つの言語に絞らないのか

理由説明
用途の多様性フロントエンド、バックエンド、データ処理、インフラで最適な言語が異なる
パフォーマンス要件高スループットが必要な処理とスクリプティングでは求められる特性が違う
採用市場1言語のみでは採用対象が限定される
技術の進化新しい言語・パラダイムを取り込む余地を残す必要がある

ポートフォリオ戦略

言語ポートフォリオの構造:

Primary Languages(主要言語: 1-2個)
├── 組織の大半のサービスで使用
├── 最も深いナレッジが蓄積
├── 社内ライブラリ・テンプレートが充実
└── 新規プロジェクトの第一候補

Secondary Languages(副言語: 1-2個)
├── 特定の用途で主要言語より優れる
├── 十分なナレッジと人材がある
└── 用途を明確に限定して使用

Specialist Languages(専門言語: 0-1個)
├── 極めて特定の用途(データサイエンス等)
├── 限られたチームのみが使用
└── 採用・教育の独自パスが必要

Legacy Languages(レガシー言語: 0-n個)
├── 新規での使用は禁止
├── 既存サービスの維持のみ
└── 移行計画が策定されている

言語選定の5つの基準

評価マトリクス

基準重み評価ポイント
エコシステム成熟度25%ライブラリの充実度、コミュニティの活発さ、ドキュメントの質
採用市場25%日本国内の求人数、候補者数、人件費水準
組織内実績20%本番環境での稼働実績、チーム内の習熟度
技術的特性20%パフォーマンス、型安全性、並行処理、ツーリング
学習コスト10%既存エンジニアが習得するまでの時間

主要言語の比較例

言語エコシステム採用市場型安全性パフォーマンス学習コスト
TypeScript55434
Go44454
Python55225
Java54543
Rust32552
Kotlin43543

用途別の推奨マッピング

用途推奨言語理由
WebフロントエンドTypeScriptReact/Next.jsエコシステムの充実
バックエンドAPIGo or TypeScriptGoは高パフォーマンス、TSはフロントとの共通化
データパイプラインPythonデータサイエンスライブラリの充実
インフラ/CLIツールGoシングルバイナリ、クロスコンパイル
モバイルKotlin / Swiftプラットフォームネイティブの最適解

フレームワーク選定戦略

フレームワーク選定の基準

基準内容
安定性メジャーバージョンアップの頻度、破壊的変更の有無
コミュニティGitHub Stars、NPMダウンロード数、Stack Overflowの活発さ
企業の後ろ盾Meta(React)、Google(Angular)、Vercel(Next.js)等
パフォーマンスベンチマーク、起動時間、メモリ使用量
開発者体験ツーリング、デバッグ、ホットリロード

フレームワークの標準化レベル

フレームワーク標準化の推奨アプローチ:

Webフロントエンド:
├── React(Adopt): UIライブラリとして統一
├── Next.js(Adopt): Reactアプリケーションフレームワーク
└── Vue.js(Hold): 新規採用停止、React移行を推奨

バックエンド(Go):
├── Echo(Adopt): Web API フレームワーク
└── gRPC-Go(Trial): サービス間通信

バックエンド(TypeScript):
├── NestJS(Adopt): エンタープライズ向けフレームワーク
├── Hono(Trial): 軽量API向け
└── Express(Hold): メンテナンスモードへ

テスト:
├── Vitest(Adopt): フロントエンドテスト
├── Go testing(Adopt): Goの標準テストパッケージ
└── Playwright(Adopt): E2Eテスト

言語戦略のコミュニケーション

伝え方のポイント

ポイント説明
理由を明確に「なぜこの言語か」をデータで説明
自由の範囲を明示「ここは自由、ここは推奨、ここは必須」を明確に
移行パスを提示既存技術からの移行方法と支援を具体的に
例外を認める正当な理由があれば推奨外の選択もOKという姿勢
定期的な見直し「この判断は永久ではない」と伝える

言語戦略ドキュメントの構成例

セクション内容
目的なぜ言語戦略が必要か
言語ポートフォリオPrimary / Secondary / Specialist / Legacy の分類
用途別マッピング各用途での推奨言語
フレームワーク推奨言語ごとの推奨フレームワーク
例外プロセス推奨外の言語を使いたい場合の手順
テンプレート各言語のプロジェクトテンプレート
更新履歴変更の記録と根拠

「言語戦略は”制限”ではなく”投資の集中”だ。限られたリソースをどこに投下すれば最大のリターンが得られるか。それを組織として判断する」 — 田中VPoE


まとめ

ポイント内容
ポートフォリオ戦略Primary/Secondary/Specialist/Legacyの4分類
5つの選定基準エコシステム、採用市場、組織内実績、技術的特性、学習コスト
フレームワーク用途別に推奨フレームワークを明示
コミュニケーションデータで語り、例外を認め、定期的に見直す

チェックリスト

  • 言語ポートフォリオの4分類を理解した
  • 言語選定の5つの基準を理解した
  • 用途別の推奨マッピングの考え方を理解した
  • 言語戦略のコミュニケーション方法を理解した

次のステップへ

次は「アーキテクチャ標準」を学びます。言語・フレームワーク戦略の上位に位置するアーキテクチャレベルの標準を設計する方法を身につけましょう。


推定読了時間: 30分