ガイド: 技術選定と意思決定の記録
ソフトウェア開発における技術選定は、プロジェクトの将来を左右する重要な意思決定です。しかし、評価軸が曖昧だったり、決定の経緯が忘れ去られたりすることも少なくありません。
このガイドでは、MCPを活用して客観的な基準で技術を評価し、その結果をADR (Architecture Decision Record) として記録するワークフローを紹介します。
🎯 このガイドで達成できること
技術選定プロンプトを使い、複数の技術候補を比較評価する。ADRプロンプトを使い、技術選定のプロセスと結論を文書化する。- チームの意思決定プロセスを透明化し、将来の技術的負債を防ぐ。
Step 1: 候補のリストアップと要件の整理
まず、選定したい技術のカテゴリと、候補を明確にします。また、どのような基準で評価したいかを整理します。
シナリオ: 新しいプロジェクトのバックエンドフレームワークを選定する。
- カテゴリ: バックエンドフレームワーク
- 候補:
- Next.js (App Router)
- Remix
- Hono
- 重要な要件:
- チームメンバーは全員TypeScript経験者
- 3ヶ月でMVP(Minimum Viable Product)をリリースしたい
- パフォーマンスを重視する
Step 2: 技術選定プロンプトで評価する
@psmメンションを使って、Claude Codeから技術選定プロンプト(APIリファレンスでの正式名称は tech_selection_matrix)を呼び出し、候補を評価します。
@psm tech_selection_matrix プロンプトを使って、バックエンドフレームワークを評価してください。
カテゴリ: バックエンドフレームワーク
候補: Next.js App Router, Remix, Hono
要件:
- チームスキル: 全員TypeScript経験あり
- タイムライン: 3ヶ月でMVP
- 優先事項: パフォーマンス重視MCPは、各候補を要件に基づいて多角的に評価し、比較マトリクスと推奨フレームワークを提案します。
参考: curl を使ってAPIを直接呼び出す場合
# MCPのエンドポイントに対してリクエストを送信
# 環境変数 MCP_SERVER_URL と MCP_API_KEY が設定されている必要があります
curl -X POST "$MCP_SERVER_URL/prompts/tech_selection_matrix" \
-H "Authorization: Bearer $MCP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"category": "バックエンドフレームワーク",
"candidates": ["Next.js App Router", "Remix", "Hono"],
"requirements": {
"team_skill": "全員TypeScript経験あり",
"timeline": "3ヶ月でMVP",
"priority": "パフォーマンス重視"
}
}'Step 3: ADRプロンプトで意思決定を記録する
技術選定が完了したら、なぜその結論に至ったのかを経緯と共に記録することが重要です。@psmメンションでADRプロンプト(APIリファレンスでの正式名称は architecture_decision_record)を呼び出し、構造化されたドキュメントを作成します。
@psm architecture_decision_record プロンプトを使って、ADRを作成してください。
タイトル: バックエンドフレームワークとしてHonoを採用
背景: 新規プロジェクトのバックエンドフレームワーク選定にあたり、Next.js, Remix, Honoを比較評価した。パフォーマンスと学習コストの観点から、Honoが最も優れていると判断した。
検討した選択肢:
- Next.js App Router: フルスタックフレームワークであり、今回の要件にはオーバースペック。
- Remix: パフォーマンスは高いが、チームの学習コストを考慮し見送った。
決定事項: Honoを採用する。パフォーマンス、軽量さ、そしてTypeScriptとの親和性が、短期間でのMVP開発という目標に最も合致するため。
影響: Honoは比較的新しいフレームワークであるため、コミュニティのサポートやライブラリの充実度については継続的な注意が必要。MCPは、インプットされた情報を基に、標準的なADRフォーマットのドキュメントを生成します。これをプロジェクトのリポジトリ(例: docs/adr/001-backend-framework-selection.md)に保存しましょう。
参考: curl を使ってAPIを直接呼び出す場合
# MCPのエンドポイントに対してリクエストを送信
# 環境変数 MCP_SERVER_URL と MCP_API_KEY が設定されている必要があります
curl -X POST "$MCP_SERVER_URL/prompts/architecture_decision_record" \
-H "Authorization: Bearer $MCP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "バックエンドフレームワークとしてHonoを採用",
"background": "新規プロジェクトのバックエンドフレームワーク選定にあたり、Next.js, Remix, Honoを比較評価した。パフォーマンスと学習コストの観点から、Honoが最も優れていると判断した。",
"alternatives": [
"Next.js App Router: フルスタックフレームワークであり、今回の要件にはオーバースペック。",
"Remix: パフォーマンスは高いが、チームの学習コストを考慮し見送った。"
],
"decision": "Honoを採用する。パフォーマンス、軽量さ、そしてTypeScriptとの親和性が、短期間でのMVP開発という目標に最も合致するため。",
"consequences": "Honoは比較的新しいフレームワークであるため、コミュニティのサポートやライブラリの充実度については継続的な注意が必要。"
}'まとめ
このワークフローを通じて、勘や経験だけに頼らない、データに基づいた技術選定と、その過程の透明な記録が可能になります。
この習慣をチームで実践することで、より健全で持続可能なアーキテクチャを構築していくことができるでしょう。