AIはインターンみたいなものである - Vibe Codingで学んだ指導と協働の本質
はじめに - Vibe Codingという新しい開発スタイル
最近、Claude Code、GitHub Copilot、Gemini、Codexなど、様々なAIツールを使った「Vibe Coding」を実践している。コードを書くというより、AIと対話しながら開発を進めるこのスタイルを続けていて、ふと気づいたことがある。
「これって、インターンを指導している時とそっくりじゃないか」
AIという名の優秀な(時々迷走する)インターン
できる子は本当にできる
インターンの中には、こちらが驚くような優秀な人材がいる。AIも同じだ。適切な指示を与えれば、自分では思いつかなかったエレガントな解決策を提示してくれることがある。
「このコードのパフォーマンスを改善したい」
→ 「ここでメモ化を使えば計算量を削減できますね。あと、この部分は並列処理にできそうです」
むしろ自分より優秀な部分もあって、新しい気づきをくれる。これはできる優秀なインターンと働いている時の感覚そのものだ。
できない子は本当にできない
一方で、どんなに丁寧に説明しても、お膳立てしても、理解してくれない時がある。
「テストを書いて」
→ 存在しないメソッドを呼ぶテストを書く
「いや、実装に合わせて...」
→ 今度は全く違う方向に走り出す
これもインターン指導でよくある光景だ。ただ、重要なのは「なぜできないのか」を考えること。多くの場合、こちらの指示が悪かったということに気づく。これが自分の学びになる。
指示の出し方という永遠の課題
具体的すぎてもダメ、抽象的すぎてもダメ
AIへの指示出しで学んだ最大の教訓がこれだ。
具体的すぎる指示の失敗例:
「Userモデルにnameとemailとageとaddressとphoneとcreated_atとupdated_atを追加して、
それぞれstring型で、ageだけinteger型で、バリデーションも全部つけて...」
→ AIが細部にこだわりすぎて、本質を見失う
抽象的すぎる指示の失敗例:
「いい感じのユーザー管理機能作って」
→ AIが迷走して、要件と全く違うものを作り始める
目的を明確に伝えることの重要性
インターンにタスクを依頼する時と同じで、**「何のために」**を伝えることが crucial だ。
良い指示の例:
「ユーザー登録機能を実装したい。
目的:新規ユーザーがサービスに登録できるようにする
必要な情報:メールアドレスとパスワード
考慮事項:セキュリティとUX」
目的が明確だと、AIも適切な提案をしてくれる確率が上がる。
AGENT.mdという「教育マニュアル」
Claude Codeで推奨されているAGENT.mdは、まさにインターンのオンボーディング資料のようなものだ。
# AGENT.md
## プロジェクト概要
- 何を作っているのか
- 主要な技術スタック
- ディレクトリ構造
## コーディング規約
- 命名規則
- コメントの書き方
- テストの方針
## よくあるタスクと対処法
- データベースの変更方法
- APIの追加方法
- デプロイ手順
このファイルを用意してから、AIの出力品質が格段に向上した。まるで、しっかりとしたオンボーディングを受けたインターンが、急に戦力になり始めたかのようだ。
教えることで成長する関係
面白いのは、AIも「教える」ことで成長(というか改善)することだ。
- 最初:「エラー処理を追加して」→ 全てのエラーをcatchする雑な実装
- 教育後:「ユーザーに起因するエラーとシステムエラーを分けて処理して」→ 適切な実装
これは会話の文脈の中でAIが学習するからだ。インターンが経験を積んで成長するのと似ている。
AIとの協働で得た気づき
1. 完璧を求めない
インターンに完璧を求めないのと同じで、AIにも完璧は求めない。70%の出力をもらって、残り30%を自分で調整する方が効率的だ。
2. レビューの重要性
AIが生成したコードは必ずレビューする。インターンのコードレビューと同じマインドセットで、「なぜこの実装になったのか」を理解しようとすることが大切だ。
3. 得意不得意を理解する
- AIが得意:ボイラープレート、定型的な処理、リファクタリング提案
- AIが苦手:ビジネスロジックの深い理解、創造的な問題解決
インターンにも得意不得意があるように、AIにも向き不向きがある。
まとめ - 新しい同僚としてのAI
Vibe Codingを続けて分かったのは、AIは「ツール」というより「ジュニアな同僚」として接する方がうまくいくということだ。
- 明確な指示を出す
- 適切な教育(AGENT.md)を提供する
- できることとできないことを理解する
- 成長(改善)を期待しながら、完璧は求めない
インターンを育てるように、AIとも向き合っていく。そうすることで、お互いに(?)成長できる関係が築けるのかもしれない。
結局のところ、AIとの協働もインターンとの協働も、コミュニケーションが鍵だ。相手が人間でもAIでも、良いコミュニケーションが良い成果を生む。この本質は変わらない。
Discussion