AIとの協業のための言語化能力と伸ばし方
AIとの協業に必要な言語化能力
1. 目的の明確化能力
「何を達成したいのか」を具体的に言葉にする力です。AIは文脈を推測できますが、ゴールが曖昧だと的外れな回答が返ってきます。「ログイン機能を作りたい」ではなく「JWTを使った認証機能で、リフレッシュトークンも実装したい」と伝えられるかどうかが重要です。
2. 制約条件の言語化能力
技術的制約、ビジネス的制約、時間的制約を明確に伝える力です。「既存のUserモデルを変更せずに」「PostgreSQLを使って」「本番環境はAWSで」といった前提条件を漏れなく伝えることで、実装可能な回答を得られます。
3. 現状の説明能力
今何が起きているのか、どこまでできているのかを正確に伝える力です。エラーメッセージをそのまま貼るだけでなく、「このコマンドを実行したら」「この操作をしたら」という再現手順を含めて説明できることが大切です。
4. 期待と現実のギャップの表現能力
「こうなってほしいのに、こうなっている」を明確に伝える力です。バグ報告の基本ですが、AIとの対話でも同様に重要です。期待値が曖昧だと、AIは何を修正すべきか判断できません。
5. 抽象度のコントロール能力
状況に応じて、詳細に説明したり、抽象的に説明したりを使い分ける力です。設計の相談では抽象的に、実装の依頼では具体的に。適切な抽象度で話せないと、会話が噛み合いません。
6. 分解と構造化の能力
大きな問題を小さな問題に分解し、順序立てて説明する力です。「アプリを作りたい」ではなく「まずデータモデルを設計して、次にAPIを作って、最後にUIを実装する」と段階を分けて依頼できることが求められます。
特に有効なのが SDD(Specification Driven Development) の考え方です。AIに依頼するとき「まずドキュメントを書いて、実装し、テストを行って実装内容を確認してください」という形で、工程を明確に指示します。これにより、AIは各段階で何をすべきか迷わず、人間も各段階でレビューしやすくなります。SDDは分解と構造化の能力を実践する最も効果的な手法の一つです。
7. フィードバックの言語化能力
AIの回答に対して、何が良くて何が足りないかを具体的に伝える力です。「違う」ではなく「エラーハンドリングが足りない」「パフォーマンスを考慮してほしい」と改善点を明示できることが重要です。
8. 暗黙知の言語化能力
自分が当たり前だと思っていることを言葉にする力です。「普通こうするでしょ」と思っていることこそ、AIには伝わりません。チームの慣習、業界の常識、個人の好みを意識的に言語化する必要があります。
9. コンテキストを準備・設計する能力
AIは「記憶喪失の優秀な新人エンジニア」のようなものです。毎回のやり取りで、AIが適切な判断を行うために必要な背景情報を意識的に準備し、提供する力が求められます。
コンテキストは以下の3階層で考えると整理しやすいです:
- グローバルコンテキスト:技術スタック、命名規則、エラーハンドリング方針などの基本ルール
- アクティブコンテキスト:変更対象ファイル、依存ファイル、お手本となる既存ファイル
- 指示(Instruction):役割、ゴール、制約を含めた具体的な命令
特に効果的なのは、言葉での指示よりも「お手本となるコード」を渡すことです。AIはコードの実例を模倣する能力に長けています。「このファイルと同じスタイルで書いて」と伝えるだけで、命名規則やエラーハンドリングのパターンを自然と踏襲してくれます。
適切なコンテキストを設定することは、AIというパートナーへの「思いやり」でもあります。AIの制約(短期記憶の限界、現場を見られないこと)を理解し、必要な情報を過不足なく提供する。この配慮が、高品質な協業を実現します。
今後は、こうしたコンテキストをSkillsのような形でまとめて再利用することが一般的になっていくでしょう。Skillsとは、特定のタスクに必要な指示やルール、参照情報をパッケージ化したものです。「PDFを扱うときはこのSkill」「APIテストにはこのSkill」といった形で、状況に応じて適切なSkillを選択・組み合わせて使います。
しかし、Skillsがあれば言語化能力が不要になるわけではありません。むしろ逆です。どのSkillを使うべきか判断するには、自分がやりたいことを正確に言語化できなければなりません。また、Skillsだけでは対応できない固有の要件や制約を補足として伝える力も必要です。Skillsは言語化能力を「増幅」するツールであり、「代替」するものではないのです。
参考:【初学者向け】AIエージェントを使いこなすための「コンテキスト」入門ガイド【大事なのは思いやり】
言語化能力を伸ばすための日々の実践
1. 毎日AIと協業して開発する
これが最も重要な実践です。
言語化能力は、本を読んで身につくものではありません。実際にAIと対話し、うまくいかない経験を重ねることでしか伸びません。
- 小さなタスクでもAIに依頼してみる
- 思った通りの回答が返ってこなかったら「なぜ伝わらなかったか」を振り返る
- うまくいったプロンプトを記録しておく
毎日の開発でAIを使い続けることで、「この説明では伝わらない」「こう言えば伝わる」という感覚が磨かれていきます。
2. 書いてから話す習慣をつける
口頭で説明する前に、一度テキストに書き起こします。書くことで思考が整理され、曖昧な部分が浮き彫りになります。
具体的な実践方法:
- 会議の前に議題を箇条書きにする:「何を決めたいのか」「どんな選択肢があるのか」を事前に整理する
- 質問する前に文章化する:Slackで質問を書いているうちに、自分で答えが見つかることも多い。これは思考が整理された証拠
- 1日の終わりに作業ログを書く:今日何をしたか、どこで詰まったかを言葉にする習慣が、言語化の基礎体力になる
「書く」という行為は、頭の中のモヤモヤを外に出すプロセスです。AIに伝える前に一度書き出すことで、自分が本当に何を求めているのかが明確になります。
3. 「なぜ」を3回繰り返す
自分の要望や判断に対して「なぜそうしたいのか」を3回問います。表面的な要望の奥にある本当の目的が見えてきます。
例えば、「検索機能を高速化したい」という要望を掘り下げてみましょう:
- なぜ高速化したい? → ユーザーから遅いとクレームが来ている
- なぜクレームが問題? → 離脱率が上がっている
- なぜ離脱率を下げたい? → コンバージョンに影響している
ここまで掘り下げると、本当の目的は「コンバージョン改善」であり、検索の高速化はその手段の一つに過ぎないことが分かります。AIにこの背景を伝えれば、「高速化以外にも、検索結果の精度向上やUIの改善という選択肢もありますが、どうしますか?」といった提案を引き出せるかもしれません。
AIに伝えるべきは、しばしばこの「本当の目的」の方です。
4. 他人のコードレビューを積極的に行う
他人のコードを読み、改善点を言葉で説明する訓練です。「なんとなく良くない」を「この理由で良くない」に変換する練習になります。
コードレビューで意識すべきポイント:
- 具体的に指摘する:「ここが分かりにくい」ではなく「この変数名だと何を保持しているか分からない。userEmailのように具体的にしてはどうか」と伝える
- 理由を添える:「この書き方は避けた方がいい」ではなく「この書き方だとnullの場合に例外が発生する可能性がある」と根拠を示す
- 代替案を提示する:問題点だけでなく「こう書くとより明確になる」という改善例を示す
これらはすべて、AIへの指示と同じ構造です。AIに「このコードを改善して」と曖昧に伝えても良い結果は得られません。「この関数は責務が多すぎるので、データ取得と加工を別の関数に分離してください」と具体的に伝える必要があります。
コードレビューで培った「具体的に、理由を添えて、代替案とともに伝える」習慣は、AIとの協業でそのまま活きます。
5. エラーが出たら即座に言語化する
エラーに遭遇したとき、すぐにAIに質問できる形で状況を整理します。「何をしていたか」「何が起きたか」「何を期待していたか」を瞬時に言葉にする習慣をつけましょう。
エラー報告のテンプレートを持っておくと便利です:
【やろうとしたこと】
ユーザー登録APIを実装中
【実行したコマンド/操作】
npm run test を実行
【期待した結果】
テストがすべてパスする
【実際の結果】
TypeError: Cannot read property 'id' of undefined
(エラーメッセージ全文を貼る)
【試したこと】
- userオブジェクトのログ出力 → undefinedだった
- モックデータの確認 → 問題なさそう
このフォーマットで整理する習慣をつけると、AIに質問する前に自己解決できることも増えます。また、AIに質問する際も、この情報が揃っていれば的確な回答が返ってきやすくなります。
6. ペアプログラミングやモブプログラミングに参加する
自分の思考を他者に伝えながらコードを書く経験です。リアルタイムで言語化する能力が鍛えられます。
ペアプロで意識すること:
- 今から何をしようとしているか声に出す:「まずこの関数の引数を確認して、次にテストケースを書きます」
- 迷っていることを共有する:「AとBどちらのアプローチがいいか迷っています。Aは実装が簡単だけど拡張性が低い、Bは逆です」
- 分からないことを素直に言う:「このライブラリの挙動がよく分からないので、ドキュメントを確認させてください」
これらはAIとの協業でも同じです。AIとの対話は、ある意味で常にペアプログラミングです。自分の思考プロセスを言葉にしながら進めることで、AIからより適切なサポートを得られます。
7. 技術ブログやドキュメントを書く
学んだことを他者に説明する形で書きます。「自分がわかっている」と「他者に伝わる」の間には大きな差があります。
効果的な訓練方法:
- 今日学んだことを3行で書く:長文を書く必要はありません。要点を絞って書く練習が言語化能力を高めます
- 過去の自分に向けて書く:「1週間前の自分がこれを読んだら理解できるか?」という視点で書く
- ハマったポイントと解決策をセットで記録する:同じ問題に遭遇した人(未来の自分を含む)への贈り物になります
技術ブログを書く過程で「この説明で本当に伝わるか?」と推敲する習慣は、AIへの指示を洗練させる力に直結します。
8. AIとの対話ログを振り返る
週に一度、AIとの対話履歴を見返します。うまくいった対話とうまくいかなかった対話を比較し、何が違ったかを分析しましょう。
振り返りのポイント:
- 何往復で目的を達成できたか:1〜2往復で解決できた対話と、5往復以上かかった対話の違いは何か
- 最初の指示に何が足りなかったか:後から追加した情報は、最初から伝えられたはずのものが多い
- AIの誤解はどこから生まれたか:曖昧な表現、省略した前提条件、専門用語の使い方など、誤解の原因を特定する
特に「うまくいかなかった対話」は宝の山です。なぜ伝わらなかったのかを分析し、次回に活かすことで、言語化能力は確実に向上します。良いプロンプトのパターンを自分なりに蓄積していきましょう。
まとめ
言語化能力は、一朝一夕には身につきません。しかし、日々AIと協業して開発を続けることで、確実に向上します。AIは疲れることなく、何度でも対話に付き合ってくれる最高の練習相手です。
重要なのは、うまくいかなかったときに「AIが悪い」と諦めるのではなく、「自分の伝え方を改善できないか」と考えることです。この姿勢で日々の開発に臨めば、言語化能力は自然と磨かれていきます。
そして、この能力は人間同士のコミュニケーションにも直結します。AIとの協業で培った言語化能力は、チーム開発においても大きな武器となります。
- ITエンジニア初学者向けに作成した記事です。
- この記事はAIによるレビューを得て作成しています。
- 記事中の画像はAIを利用して作成しています。

