giftee Tech Blog

ギフティの開発を支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信しています。

コーディングエージェント時代の開発のありかたを考える

こんにちは。エンジニアの安達です。今年の5月にリリースしたカタログギフトシステムなどの開発に携わっています。また、社内のワーキンググループとして、AI開発ツールの導入推進にも関わっています。

今回は、コーディングエージェントと呼ばれるAI開発ツールの導入によって、開発のありかたがどのように変わるかについて、私が最近考えていることを書きたいと思います。

コーディングエージェントの台頭

2025年に入ったあたりから、自律的に開発が可能な「コーディングエージェント」と呼ばれるAI開発ツールの活用が急速に注目され始めて、各社で導入が進んでいます。2025年6月現在に注目されているツールとしては、Claude Code, Devin, Cursor, GitHub Copilotなどがあると思います。

ギフティでのコーディングエージェントの活用

ギフティでは、2025年の3月から、全社のエンジニアが利用可能なツールとしてDevinを導入しました。導入後、エンジニア同士でのクチコミ的な形で、各チームでDevinの有用性が認識されて、利用数が急速に拡大している状況にあります。

ギフティではDevin以外にも、コーディングエージェント機能を持つCursorとGitHub Copilotが利用可能です。また、Claude Codeも導入に向けて検討を進めています。

コーディングエージェント時代の開発のありかたを考える

私自身、Devinを使い始めて、まとまった量のコーディングを完全に自動化できることに驚きを感じて、Devinが上手く開発できるような依頼方法を試行錯誤して来ました。その結果として、自身の開発スタイルがごく短期間の間に、コーディングエージェントを前提としたものに変化していることに気づきました。

最近では、コーディングエージェントによって開発スタイルがどのように変わるか、また、その変化をどのように受けとめて、これからの開発の仕事を考えればよいのだろうか、ということを考えることが多いです。

azukiazusa.dev

そんな日々の中で先日、azukiazusaさんの上の記事を読みました。以下の点について、私も同じことを感じていたので、丁寧な言語化に触れて、考えを整理する助けになりました。

  • コーディングエージェントへの「タスクの分割と割り当て」と生成されたコードの「コードレビュー」が重要になること
  • 「AI 疲れ」が問題になること

私もこれらの点を重視しているので、内容に重複が出てしまうのですが、異なる環境で働くエンジニアが、現在の変化を同じような視点で見ている、ということから見えて来ることもあると思うので、私の言葉で、今考えていることを書いてみたいと思います。

コーディングエージェントの強み

コーディングエージェントには大きく分けて以下の強みがあると思っています。

  • 人間とは別のプロセスで開発を進行できる
  • 従来の前提を覆すマルチタスク同時進行ができる

人間とは別のプロセスで開発を進行できる

従来の人間による開発では、エディターの前で集中できるまとまった量の時間を確保する必要がありました。その一方で、コーディングエージェントは開発タスクの依頼さえすれば、勝手に開発を進めてくれます。会議への参加やコードレビューなど、自分の開発タスク以外にやらなければならないことが、色々とあるような場合でも、開発タスクの依頼さえできれば、人間の活動とは別のプロセスで開発を進行できるわけです。

従来の前提を覆すマルチタスク同時進行ができる

Devinを使っていて、複数の独立したタスクをまとめて依頼して、同時並行的に開発を進められることに気づきました。

人間が開発する場合には、他人にタスクを依頼することを想定したとしても、チームにアサインされている人数分までしか同時に開発を進行することはできませんでした。それがコーディングエージェントを用いると、コーディングエージェントを用いる開発者個人に対応する形で、いつでも任意の数までの同時並行開発を行えるようになります。このことには、開発生産性が劇的に向上するような可能性を感じます。

www.anthropic.com

Anthropic社によるClaude Codeのベストプラクティスを記載した記事でも、以下のような同時並行稼働の手法が紹介されています。

  • git worktreeの機能を用いて、ブランチごとに独立した作業ディレクトリを割り当てた上で、並行開発する
  • 機能を実装するエージェントとレビューやテストを担当するエージェントを並行稼働させる

このような同時並行稼働による開発生産性の向上については、最近の世の中のSNSの投稿や、各社の導入事例などの記事を読むにつけても、業界で大いに注目されているトピックのように思われます。

コーディングエージェントの強みを活かす開発の進めかた

このようなコーディングエージェントの強みを活かすことを考えると、上の図のような開発スタイルになって来る*1と思います。

人間が行う仕事としては、コーディングエージェントへのタスクのインプット(タスクの起票)と、アウトプットの評価(コードレビュー)が重要になって来ます。

タスクをインプットする(タスクの起票)

開発要件を満たすように、タスクをテキストで論理的に表現します。コーディングエージェントは、複数の開発スコープが混ざっているような、論理的な簡明さに乏しいタスクを苦手とする傾向があるので、小さい開発タスクに分割できると効果的です。 開発スコープの切れ目をどこに見出すと、タスクごとの論理的な関心が明確になるか判断して、分割することが重要になると思います。

インプットを効果的にするために、既存コードに法則性を見出す / 生み出す

コーディングエージェントには、既存コードを閲覧して分析する能力があります。既存コードからの類推で新機能を開発できるような法則性を見出して、インプットできると効果的です。既存コードの法則性が不明瞭な場合には、新たに法則性を生み出すような設計のリファクタリングを実施するところから始めたいです。

アウトプットを評価する(コードレビュー)

アウトプットがタスクの要件を満たしているか確認します。要件を満たしていない部分の調整については、コーディングエージェントに再度依頼するか、自分で調整するかを、必要な変更の性質によって判断します。

テストコード実行による自己評価

コーディングエージェントはテストコードを実行する能力があるため、ユニットテストを完備することで、リグレッションの可能性などについては、コーディングエージェント自身に評価させることも可能です。

これまでも大事だった基礎力が効いてくる

このように見ていくと、小さい粒度でのタスク起票、コードレビュー、ユニットテストの整備、コードに法則性を生み出す設計などは、すべてAI以前の開発でも重要だった、基礎的なスキルばかりであることに気づきます。

やみくもにAIツールに頼るのではなく、開発手法の変化によらず重要であり続ける基礎スキルとは何か、ということを考えて、業務経験を通じてそういったスキルを地道に涵養するようなことも、引き続き必要になるのではないでしょうか。

AI疲れの問題

その一方で、コーディングエージェントは、デメリットなく開発生産性を向上させてくれるわけではありません。

私はコーディングエージェントを積極的に活用するようになってから、時間あたりの仕事の疲労感の蓄積が、これまでに感じたことがないほど大きくなることに気づきました。これは、従来の手法では不可能だったマルチタスク同時進行が可能になることによって、身体に強い負荷がかかるためと思われます。

生き物としての人間の処理能力が開発生産性のボトルネックになる

このAI疲れの問題があり、マルチタスク同時進行が可能になるにも関わらず、実際に試してみると、開発生産性を2倍以上に引き上げるような、劇的な改善は容易ではないことに気づきます。生き物としての人間の処理能力の限界にあっという間に到達してしまうのです。

人間に負荷をかけずに機械に頑張ってもらうには

そのため、開発生産性をより劇的に向上させるためには、人間に負荷をかけずに、コーディングエージェントにたくさんコードを書いてもらうには、どうすればよいかを考える必要があると思われます。

どのようにしたらそのようなことが可能になるのか、今の私にはまだはっきりとしたことは見えていないのですが、これから従来の常識を覆すような、AIネイティブな開発環境や設計の導入が注目されてくるのでは、と想像しています。

働き方を変えるアプローチも考えたい

その一方で、そもそもの話として、開発生産性の向上だけを突き詰める先に、あまり良い未来が待っていないのでは、と感じる部分もあります。

従来の長時間残業などとは異なる、新しい「過労」のあらわれかた、ということだと思うので、働き方を変えるアプローチも考えたいです。

まず、休憩がこれまで以上に重要になります。身体に過剰な負荷を感じた際は、しっかりと休むことが大事です。

また、フレックスタイム制のような、働く時間を柔軟に調整できる制度の価値が、これまで以上に高まると思います。例えばですが、AIアシストで短時間で成果を出した日には早めに上がる、というようなことができると、疲れを溜めずに次の日の仕事に臨めそうです。

個人的には、週休3日制や、1日8時間以上の労働の見直しなどの議論が、AI活用を機に本格化してもよいのではとも思っているのですが、どうでしょうか。

おわりに

コーディングエージェントによって、開発のありかたが根本から変わりつつあります。

今年に入ってからの変化のスピードが著しく、この先に何が待ち受けているのか、ほとんど予想できないようにも感じます。

そんな中で、開発生産性の向上だけではなく、働く人の幸せにつながるような未来を描けるように、AI活用のありかたを考えていけたらと思っています。

*1:上に紹介したClaude Codeのベストプラクティスの記事にあるように、コードレビューをAIに担わせる手法が注目されていますが、簡略化のために省略しています。