Tabelog Tech Blog

食べログの開発者による技術ブログです

AIをうまく使えなかった私がAIネイティブへ:自律型AIエージェントが変えた私の開発スタイル

はじめに

こんにちは。
食べログカンパニー 開発本部 ウェブ開発1部 ownerチームで「食べログ求人」というサービスの開発や、食べログの営業チームが使用している業務系システムの開発を担当している@itayaです。

本記事では、私がAI活用でつまずいていた状況から、Devinという自律型AIエージェントとの出会いによって劇的に開発スタイルが変わった体験についてお話しします。従来のAIツールを「単なる補助ツール」としか認識できなかった私が、いかにして真のAIネイティブ開発者へと変貌を遂げたかをご紹介します。

AI活用の流れに乗り切れなかった私

会社全体のAI推進の流れ

社内では、会社全体としてAI活用を推進する機運が高まり、CursorやDifyといったツールの導入が積極的に進められていました。同僚たちも次々とAIツールを使いこなし、生産性を向上させている様子を目の当たりにしていました。

しかし、私自身は「所詮はコーディング補助ツール」という認識から抜け出せずにいました。確かにコードの生成や修正はしてくれるものの、結局のところ毎回やり取りが必要で、私自身が実装に集中する「実装モード」に入る必要がありました。

リーダー業務との両立の難しさ

私の日常業務は開発だけではありません。リーダーとして以下のような業務を並行して行っていました。

  • チームメンバーのコードのレビュー
  • 日々の進捗管理
  • 要件相談や定例会議への参加
  • 問い合わせへの対応など

これらの業務が1日の半分以上を占めており、私の案件に割ける実装の時間は1日半分ほどあるものの、1回あたり30分〜1時間程度の細切れ時間が点在している状態でした。 そうすると、先ほど書いたような「実装モード」に入ったタイミングで他のリーダー業務に戻るといった状態になりAIとの対話を充分にできずにタスクを行き来するといった形になってしまいました。 まとまって集中する時間を取ることができず、AI活用も充分にできないといった状態となっていました。

Devinとの出会いで根本的に変わるAIへの認識

運命的な出会い

そんな中、2025年5月から社内でDevin(自律型AIエージェント)の導入が開始されました。 幸運にも私はその先行体験組に参加させてもらうことができました。 そこで私がなかなか手を付けられずにいた軽めの案件を試しに任せてみました。

その結果は、私のAI活用に対する認識を根本的に変える衝撃的なものでした。

指示をしたらPull Request作成まで完全自動

担当していた案件は、既存画面に履歴情報を表示と一部エラーの制御を追加するといったものでした。 私が行ったのは、以下のような自然言語での簡単な指示のみです。

「下記のような相談が来ているので、対応してPull Requestの作成までお願いします。要件イメージの内容はファイルとして添付しました。(以下カスタマーサポートの人から来た文章をそのまま添付)」

驚くべきことに、Devinは下記のことを先ほどの指示で行ってくれました。

  1. 要件の理解:既存コードを分析し、実装パターンを把握
  2. 実装の実行:コントローラー、ビューの実装
  3. Pull Requestの作成:適切なコミットメッセージと説明付きでPull Request作成

また、テストコードについても「今回の実装に対するテストコードを作成して欲しい」と伝えただけで作成してくれました。

私が感じた大きな変化

また、コードの修正についても、先ほど作成させたPull Requestにコメントを送信するだけで自動で修正してくれました。 この体験が、私がこれまで感じていたAIツールに対する印象を大きく変えるきっかけとなりました。

この変化により、最初の方に触れた「実装モード」に私自身が入る必要なく案件を進められるようになりました。 その結果、他のリーダー業務を行う裏で実装をしてもらうという夢のような開発スタイルが実現できました。

この体験により、初めてAI活用においての開発業務の変革を実感しました。 それまでAIを活用した開発と言いながらも、結局私が主体となって作業していたのが、完全に「実装をAIに委任する」という新しい開発スタイルに変わったのです。

大規模案件での新たな壁と解決策

複雑な要件での課題

ただ、最初から全ての案件でそれができたわけではありませんでした。 小規模な案件では素晴らしい成果を発揮してくれたDevinですが、大規模で複雑な案件では以下のような課題に直面しました。

1. 表面的には正しく見える実装

  • 想定していない挙動の実装:一見それっぽい実装をしてくれるものの、実際の要件とは異なる動作が実装されている
  • 過剰な機能実装:必要以上のバリデーションや不要なコードが含まれており、想定していた仕様を超えた複雑な実装になってしまう

2. 品質チェック工数の増大

  • 詳細なレビューが必須:表面的には問題なく見えるコードでも、想定していない挙動が実装されていないかを非常に丁寧な確認が必要である
  • 動作確認の困難さ:そのままでは動かないコードも生成されることがあり、動作確認もスムーズに進まない

結果的に、それっぽい実装を迅速に作成してくれるものの、チェック作業にかなりの時間を要してしまい、私が一から実装するのと同等の時間がかかってしまいました。

指示出しの工夫

「大規模案件系を任せるのは厳しいかな」と諦めかけたものの、Cursorを使っていた頃に意識していたアプローチを採用することで、大規模案件でもDevinを効果的にコントロールできるようになりました。 そのアプローチとは以下のようなものです。

1. より細かなタスク分割

従来のタスク粒度:

「ユーザーがOOを購入する画面の実装をお願いします。画面には入力、確認、完了の3つの画面があります。」

改善後のタスク粒度:

「ユーザーがOOを購入する入力画面を作成してください。入力画面にはxxとxxという項目があります。」

(上記の実装が確認できたら)「ユーザーがOOを購入する確認画面を作成してください。確認画面では入力画面で入力したxxという情報を表示してください。」

このように、画面全てを一度に指示するのではなく、1つの画面を指示して確認し、それが完了次第次の画面を実装させるという手順に変更しました。

2. テストコードによる期待動作の明確化

また、実装のコードをいきなり書かせるのではなく、まずテストコードを作成してもらい、それを私の方でチェックして問題がないことを確認してから「テストコードが通るように実装をして欲しい」という流れで進めました。

上記アプローチをした結果

結果的に、もともと起きていたような想定していない実装や必要以上のコードが実装されるといった問題を防ぐことができ、レビューや動作確認もスムーズに行えるようになりました。

具体的には、これを実践する前は3回に1回くらいは1から生成し直しをさせていましたが、現在では1から生成し直しさせるようなことは起きなくなりました。 また、確認も1回30分近くかかってしまっていたものが1回5~15分程度で収まるようになりました。

AIネイティブ開発者への変貌

これまでお話ししてきたDevinとの出会いから指示出しの工夫まで、一連の取り組みによって私の開発スタイルは劇的に変化しました。ここでは、その変化を具体的な数字と質的変化の両面から振り返ってみたいと思います。

生産性の劇的向上

最も客観的で分かりやすい変化は、Pull Request作成数の大幅な増加でした。

  • 導入前(1月〜4月):月平均10件
  • 導入後(5月〜7月):月平均21件
  • 向上率約2.1倍

※各Pull Requestの大きさは1機能・1画面程度の同じような規模で作成しています。

重要なのは、実装にかける時間は導入前と変わらず、むしろ若干短縮されていることです。つまり、同じ時間でより多くの機能を実装できるようになったのです。

開発スタイルの根本的転換

数字以上に大きな変化は、開発スタイルそのものの転換でした。

最も象徴的な変化は、私自身がコードを一行も書かなくなったことです。 すべての修正は以下の流れで行われるようになりました。

開発フロー比較

具体的にはこのように開発フローが変化しました。

従来の開発フロー

  1. 実装開始
  2. 実装準備(ブランチ作成、エディタを開くなど)
  3. AIに実装指示
  4. 動作確認
  5. AIへ修正依頼
  6. 動作確認 ←修正が必要な場合は「AIへ修正依頼」へ戻る
  7. Pull Requestの作成
  8. 実装完了

Devin導入後の開発フロー

  1. 実装開始
  2. Devinに実装依頼
  3. 動作確認
  4. Pull Request上でコメント
  5. 動作確認 ←修正が必要な場合は「Pull Request上でコメント」へ戻る
  6. 実装完了

主に変わったのが 実装準備やPull Requestの作成などコーディング付近の作業がなくなったこと です。 これにより、記事冒頭で課題として挙げていた「実装モード」へ入る必要がなくなり、リーダー業務との兼業がスムーズになりました。 他業務を行いながら裏でDevinが実装を進めてくれるため、細切れ時間でも効率的な案件の進行が可能になったのです。

AI活用に悩む方々へ

最初にお話ししたとおり、私は決してAIネイティブな開発者ではありませんでした。むしろ、複数のAIツールが登場しても、それらをうまく使いこなせずにいた側の人間です。

それが、たった1つのツールとの出会いで、開発スタイルが大きく変わり、今ではすっかりAIネイティブな開発者になったと感じています。

新しいツールが出たとき、多少抵抗感があっても「とりあえず試してみる」ことで、思いがけない発見や自分に合うやり方と出会えることもあります。 私自身、実際に使ってみて初めて分かることがたくさんありました。

もしAI活用に迷いや抵抗をお持ちの方がいれば、ぜひ一度試してみてほしいです。私の経験が少しでも参考になれば嬉しいです。