現場プロが明かすAI駆動開発の実践的ノウハウ

これらの課題を踏まえて、新田氏と森重氏は、AI駆動開発を現場で活用するためのいくつかの実践的ノウハウを紹介した。
森重氏は、まず現在主流のAI駆動開発ツールとそのユースケースを紹介した。森重氏によれば、中堅エンジニアの多くは、GitHub Copilotという拡張機能やCursorというIDEを使用しており、文章の補完やチャットベースでのコード修正、テスト作成、ドキュメント作成に最適だという。
自律型のAIエージェントについては、Claude Codeのコード生成品質が非常に高く、CLI中心で開発しているエンジニアにとっては最も親和性が高いツールと評価する一方、Devinは開発フェーズよりも保守運用のほうが適していると述べる。

これを受け新田氏は、GitHub CopilotなどAIと対話しながらプロセスを確認しつつ開発するスタイルを好むと述べる一方で、DevinやClaude CodeのようなAIエージェントについては、プロセスを把握するのが難しく、全面的に信頼を置くことには抵抗があると、懸念を明かす。
森重氏は、現状ではDevinやClaude Codeだけで開発プロセスを完結させるのは難しいと指摘したうえで、次のように述べる。
「誰がAI駆動開発ツールを使用するのかによって、適切なツールとユースケースは異なる。使用する場面や目的によって使い分けることが重要だ。また今後AIの精度が上がり、非エンジニアによる市民開発がさらに普及すれば、AIエージェントによる自律開発が主流になる可能性も十分にある」(森重氏)
AIの精度に関連して、新田氏は、コンテキストウィンドウ(AIの短期記憶量)の制約にどう対処するかが、AI駆動開発を実践する上で重要だと指摘する。新田氏は、AIエージェントとの対話を続けるうちにコンテキストウィンドウが限界に達し、突然それまでの文脈が失われてしまう経験を語った。「優秀な同僚が突然記憶喪失になったような感覚だ」と新田氏は語り、AIと愚直に対話を続けるだけでは生産性は向上しないという重要な教訓になったという。
そこで新田氏と森重氏は、AI駆動開発で自身が実践するノウハウをいくつか紹介した。AIに与えるTo-Doを細分化し作業範囲を限定的かつ具体的に指定すること。タスクごとにチャットのスレッドを分けて指示を行うこと。動作環境やライブラリのバージョン、データベースのスキーマなどをMarkdown形式で記述しGitHub CopilotのInstructionsフォルダに配置すること、問題のあるコードや命名規則違反のコードをドキュメント化して記録することなどだ。
「AIは決して全知全能ではないため、生産性向上のためにはコンテキストウィンドウとどう付き合っていくかが重要だ」(新田氏)

新田氏の問題提起を受けて、森重氏は先日AWSが発表したAIエージェント内蔵のエディタKiroについて紹介した。Kiroは、ユーザーの受け入れ条件を定義してから設計を行い、ドメインやレイヤーの設計を経てタスクリストに落とし込んで実装する「振る舞い(ビヘイビア駆動開発)」や「仕様駆動開発(スペック駆動開発)」などのアプローチを採用している。AWSがKiroを開発したのは、コンテキストウィンドウの課題に対する新たなアプローチという側面もあるのではないかと、森重氏は話す。