AI駆動開発の歴史
この章で学ぶこと
Section titled “この章で学ぶこと”AIを活用したソフトウェア開発は、短期間のうちに大きく進化してきました。このレッスンでは、その進化を「コード補完」「チャット型アシスタント」「自律型コーディングエージェント」という3つの世代に整理し、それぞれの時代でエンジニアの関わり方がどのように変化してきたかを理解します。
第1世代:コード補完の時代
Section titled “第1世代:コード補完の時代”初期のAI駆動開発を代表するのが、GitHub Copilotに見られるような行単位・関数単位のコード補完です。エンジニアがエディタでコードを書き進めると、AIが文脈を読み取り、次に続く数行を予測して提案する形で動作します。
- 主導権の所在: コードを書く判断はすべてエンジニアにあり、AIはその都度の提案を採用するか却下するかを選ぶだけの補助的な存在でした。
- 役割のイメージ: 「賢い予測変換」に近く、タイピングの手間を減らし、定型的な記述を高速化することが主な価値でした。
- エンジニアの立ち位置: この時代のエンジニアは、依然として「コードを書く人」であり、AIは執筆を助けるアシスタントという位置づけにとどまっていました。
第2世代:チャット型アシスタントの時代
Section titled “第2世代:チャット型アシスタントの時代”ChatGPTやClaudeといった対話型AIの登場により、開発の関わり方は大きく変わりました。エンジニアはチャット画面でAIと対話し、実装方法を質問したり、エラーメッセージの原因を尋ねたり、必要なコードスニペットを生成してもらったりするようになりました。
- 知識の取得先の変化: 検索エンジンやドキュメントを調べる代わりに、AIに直接質問して答えを得るという行動様式が広がりました。
- 統合作業は人手のまま: AIが生成したコードは、エンジニアがコピー&ペーストして自分のプロジェクトに組み込む必要がありました。AIはエディタやターミナルとは切り離された存在であり、実際のコードベースの状態を把握しているわけではありませんでした。
- エンジニアの立ち位置: この時代のエンジニアは「コードを聞く人」へと変化しました。AIは相談相手としての役割を担うようになりましたが、最終的にコードを統合し、動作を確認するのはエンジニア自身の仕事でした。
第3世代:自律型コーディングエージェントの時代
Section titled “第3世代:自律型コーディングエージェントの時代”Claude Codeに代表される自律型コーディングエージェントの登場により、AIの関わり方はさらに一段階進みました。AIはファイルの読み書き、コマンドの実行、複数ステップにわたるタスクの遂行を自律的に行えるようになっています。
- プロジェクト全体の理解: エージェントはプロジェクト全体のコンテキストを読み取り、関連する複数のファイルにまたがる変更や、テストの実行・修正までを一連の作業として自律的に進めます。
- 断絶の解消: 第2世代で課題となっていた「AIとエディタ・ターミナルの断絶」が解消され、AIが開発環境そのものの中で作業を完結できるようになりました。
- エンジニアの立ち位置: この時代のエンジニアは「タスクを指示し、結果をレビューする人」に近づいています。実装の細部を逐一指示するのではなく、達成したい目的を伝え、AIが行った作業の妥当性を確認・判断することが中心的な役割になりつつあります。
コード補完・チャット型アシスタント・自律型コーディングエージェントという3つの世代を通じて、エンジニアの役割は「コードを書く人」から「コードを聞く人」、そして「タスクを依頼しレビューする人」へと変化してきました。この流れを理解しておくことは、今後AIをどのように業務に取り入れていくかを考えるうえでの土台になります。
次のレッスンでは、この自律型コーディングエージェントが実際にどのような仕組みで動作しているのかを詳しく見ていきます。