Skip to content

ガイド: 技術選定と意思決定の記録

ソフトウェア開発における技術選定は、プロジェクトの将来を左右する重要な意思決定です。しかし、評価軸が曖昧だったり、決定の経緯が忘れ去られたりすることも少なくありません。

このガイドでは、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を直接呼び出す場合
bash
# 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を直接呼び出す場合
bash
# 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は比較的新しいフレームワークであるため、コミュニティのサポートやライブラリの充実度については継続的な注意が必要。"
}'

まとめ

このワークフローを通じて、勘や経験だけに頼らない、データに基づいた技術選定と、その過程の透明な記録が可能になります。

この習慣をチームで実践することで、より健全で持続可能なアーキテクチャを構築していくことができるでしょう。

MIT License