いちろう’s blog

すーぱーえんじにあ

AIコーディングとエンジニアの生産性に対する所感

LLMを利用してアプリを開発するAIコーディング、めちゃくちゃ流行ってますね

Xを見たら「Claude Code使ったら非エンジニアでもアプリが作れた!」や「Cursorでこんなことができた!」のような投稿が溢れかえり、世間がAIコーディングに非常に注目しているのがわかります。

私自身もエンジニアなので、業務でCopilotやClaude Codeの導入を進めたり、プライベートでGithub CopilotやGeminiを課金して使い倒しています。

一方で、最近「AIコーディングがあるからITエンジニアはもっと生産性高められるよね」みたいな声をよく聞くようになりました。「そう思う人がいる」という点に関しては同意であり否定するものではないものの「これが今の時点で事実なのか」という点に関しては疑問があります。

個人的にAIコーディングの現在地は、以下だと思っています

  • PoC開発の生産性を劇的に高めるが、システム開発への影響はその限定的である
  • システム開発においてAIコーディングは、シニア以上のエンジニアの生産性を向上させる

この場ではPoC開発とシステム開発を以下のように使い分けています。

  • PoC開発: 商用利用を想定しないMVP以下のサービスの開発
  • システム開発: 商用環境での不特定多数のユーザーの利用を想定したサービスの開発

AIコーディングが「生産性を劇的に高め」ている?

多くは生産性向上の例は、PoCレベルの開発にAIコーディングを適応した例を見ている

Xやブログ記事で発信されるAIコーディングの生産性の向上の例は、オセロゲームやTODOアプリのようなチュートリアル的なものか、ハッカソンような短期のプロダクト開発で利用されたものが多いと感じています。

それらは「中長期的な運用や機能追加を想定していない」または「想定していてもその成果が現れる前のフェーズの状態」つまりPoC開発のものが多いと思っています。

一方でエンジニアが生産性を向上させたいとされるシステム開発においては、以下のような観点が重要になってきます。

  • チームや組織の規約への順守
  • 将来の機能開発の考慮したアーキテクチャ
  • 運用・保守
  • など

最近のAIコーディングの評価はPoCプロダクトを開発するまでの速さだけを見て「生産性向上した!」と言っているような感想を持ちます。

現状のAIコーディング = ジュニアエンジニアとのペアプロ状態

AIコーディングはLLMを利用しており、LLMはどれだけ性能が高くても確率的言語モデルです。 つまり、与えられた入力に対し、最も確からしい出力を返す仕組みであり、必ずしも常に正解を返すわけではありません。

そのため、インストラクションの整備やドキュメント化、途中での指示出し、最終的なレビューが必要になります。  

これはまさにジュニアエンジニアとペアプロをしている状態に近く、経験豊富なエンジニアにとっては思ったほど生産性が上がらない場合もあります。

プラクティスはまだ発展途上

AIコーディングが一般に注目されて導入が進み始めてから、2〜3年程度しか経っていません。プラクティスがほぼ毎日更新され、新しい技術を私たちが試行錯誤している状態です。

今はAIコーディングというジュニアエンジニアを世界中のエンジニアが教育している状態だと感じています。

今後様々なシーンでAIコーディングが活用されていき、AIコーディングのプラクティスが整ってきた時、初めてAIコーディングが生産性を向上させる状態になると思います

まとめ

まとめると、AIコーディングはPoC開発の生産性を劇的に向上させるが、システム開発の生産性に関して限定的な効果にとどまっている状態だと感じています。

ですが今後プラクティスが充実していくとシステム開発でも大きな生産性向上を発揮できるようになっていくと思います。

昨日のベストプラクティスが今日には塗り替えれている、が頻繁に起こるくらい時代の流れも早いので継続的に情報は収集していきたいですね。