全体目次
-
- はじめに:AIを開発現場で活用する
- 効果的なプロンプトの基本原則
- プロンプト改善のコツ
-
- 計画策定(プロジェクト計画、要員計画、テスト全体計画、移行計画、SLA)
- 見積もり(3秒見積もり、概算見積もり、詳細見積もり)
- プロジェクト管理(コミュニケーションルール、体制図、進捗管理ルール、課題管理ルール、変更管理ルール、品質管理ルール)
-
- 要件整理・分析
- ユーザーストーリー作成
- 要件定義書作成
- ユースケース作成
- 各種レビュープロンプト
-
- 基本設計(システム方式設計、データベース、アプリケーション)
- 詳細設計(画面、ビジネスロジック処理、バッチ処理、テーブル、帳票、API)
- 方式設計(バッチ方式、インターフェース方式、ジョブ方式)
- データ移行設計
- 監視設計
- コード作成・修正
- 単体テスト
- デバッグ・エラー解決
- コードレビュー
-
- テスト計画・設計
- 結合テスト計画(サブシステム内機能結合)
- 統合テスト計画(サブシステム間・外部システム連携)
- システムテスト計画
- 非機能テスト計画
- 受入テスト計画
- 結合テスト(サブシステム内部の機能結合テスト)
- 統合テスト(サブシステム間・外部システム連携テスト)
- システムテスト(エンドツーエンドの業務フロー検証)
- 非機能テスト(性能テスト、負荷テスト、セキュリティテスト)
- 受入テスト
- テスト計画・設計
-
- パフォーマンス最適化
- セキュリティ対策
-
- ユーザーマニュアル・技術ガイド作成
- リリース・運用
- 保守・改善(レガシーコード対応、リバースエンジニアリング、モダナイズ、変更の影響調査)
- チームコミュニケーション
- 技術調査・学習
- DevOps・CI/CD
-
- クラウド構成設計
- インフラ構築・運用
- クラウドサービス活用
- コンテナ・仮想化
- インフラ自動化
はじめに:AIを開発現場で活用する
開発現場でAIを効果的に活用するためには、明確で具体的な指示(プロンプト)を書くことが重要です。このチートシートでは、日本の開発現場における様々なシーンに最適化されたプロンプトテンプレートを提供します。
プロンプトエンジニアリングとは、AIモデルから最適な回答を引き出すための指示文(プロンプト)を設計・最適化するスキルです。適切なプロンプトを使用することで、以下のようなメリットがあります:
- 開発作業の効率化・高速化
- 一貫性のある成果物の生成
- 品質向上とミスの削減
- ナレッジ共有の促進
- 属人化の軽減
日本の開発現場では、独自の開発手法や文化的背景があります。このチートシートでは、そうした特性を考慮し、実務で即活用できるプロンプトテンプレートを集約しています。
効果的なプロンプトの基本原則
AIから最適な回答を得るためには、以下の基本原則を意識してプロンプトを作成しましょう:
1. 具体的な指示を与える
曖昧な指示ではなく、具体的に求めている結果を明確に伝えましょう。
悪い例:
設計書を作ってください。
良い例:
Javaで実装する会員登録機能のAPI設計書を作成してください。RESTful APIとし、必要なエンドポイント、パラメータ、レスポンス形式、エラーハンドリングを含めてください。
2. 背景情報を提供する
関連する情報や背景を十分に説明することで、より的確な回答を得られます。
悪い例:
このエラーを修正してください。
NullPointerException at line 42 in UserService.java
良い例:
以下のエラーが発生しています:
NullPointerException at line 42 in UserService.java
関連コード:
[コードを貼り付け]
このエラーはユーザー情報の取得時に発生しており、データベース接続は正常に確立されていますが、特定の条件でユーザーオブジェクトがnullになります。原因と解決策を教えてください。
3. 出力形式を指定する
必要な形式を明示的に伝えることで、期待通りの形式の回答を得やすくなります。
悪い例:
プロジェクト計画を立てて。
良い例:
以下の情報に基づいてプロジェクト計画を作成してください:
[プロジェクト情報]
出力形式:
- プロジェクト概要(100字程度)
- 主要マイルストーン(5つ程度、日付と成果物)
- WBS(作業分解構造)を表形式で
- リスク一覧(影響度と対策を含む)
4. 制約条件を明記する
制約やルールを明確にすることで、要件に沿った回答を得やすくなります。
悪い例:
Pythonでデータ分析コードを書いて。
良い例:
以下の要件に従ってPythonでデータ分析コードを書いてください:
- pandas, matplotlib, seabornのみを使用すること
- 処理時間を最適化すること
- PEP8のコーディング規約に従うこと
- 100MB以上のCSVファイルでも動作すること
- コメントは日本語で記述すること
5. 日本語特有の言い回しに注意する
日本語特有の曖昧な表現や遠回しな言い方を避け、明確に伝えましょう。
悪い例:
もしよろしければ、できれば、テストケースを少し考えていただけると助かります。
良い例:
以下の関数のテストケースを10個作成してください:
[関数の仕様や実装]
各テストケースには以下を含めてください:
- 入力値
- 期待される出力値
- テストの目的(境界値、異常系など)
プロンプト改善のコツ
効果的なプロンプトを作成・改善するためのコツをご紹介します:
1. 反復的な改善を行う
完璧なプロンプトを一発で作るのは難しいため、AIの回答を見て継続的に改善しましょう。
前回のプロンプトの回答を踏まえて、以下の点を改善してください:
- XXXについてより詳細な説明を追加
- YYYのフォーマットをより構造化
- ZZZについては含めない
2. ロールプレイを活用する
AIに特定の役割を与えることで、専門的な視点からの回答を促せます。
あなたは10年以上の経験を持つシニアバックエンドエンジニアとして、このコードをレビューしてください。特にパフォーマンス、セキュリティ、保守性の観点から改善点を指摘してください。
3. 模範例を示す
理想的な回答の例を示すことで、AIはそのパターンを学習し同様の形式で回答します。
以下の形式でコードレビューを行ってください:
例:
コード:[コード断片]
問題点:[問題の説明]
重要度:[高/中/低]
改善案:[修正後のコード]
以下のコードをレビューしてください:
[レビュー対象コード]
4. 段階的な指示を与える
複雑なタスクは、単純なステップに分解して指示すると良い結果が得られます。
以下の手順でデータベース設計を行ってください:
1. まず、要件から必要なエンティティを特定する
2. 各エンティティの属性を列挙する
3. エンティティ間のリレーションシップを定義する
4. 正規化を行う
5. 物理設計(テーブル、カラム、制約)に変換する
5. フィードバックループを作る
AIからのフィードバックを求めると、より洗練された成果物が得られます。
この設計案について、以下の点で自己評価を行い、改善点を指摘してください:
- 拡張性
- 保守性
- パフォーマンス
- セキュリティ
6. マルチモーダル入力の活用
文章だけでなく、図表や構造化データも組み合わせて使用します。
以下のER図と画面イメージを参考に、データアクセス層の設計を行ってください:
[ER図のテキスト表現]
[画面イメージの説明]
7. プロジェクト固有のコンテキストを提供
プロジェクト特有の用語や背景を説明すると、より適切な回答が得られます。
当プロジェクトは金融系レガシーシステムのマイクロサービス化を目指しています。以下の技術スタックと制約条件を踏まえて、移行戦略を提案してください:
[技術スタックの詳細]
[制約条件]
[既存システムの概要]
これらのコツを活用して、日本の開発現場に最適化されたプロンプトを作成し、AIの能力を最大限に引き出しましょう。