AIコーディングとエンジニアの生産性に対する所感
LLMを利用してアプリを開発するAIコーディング、めちゃくちゃ流行ってますね
Xを見たら「Claude Code使ったら非エンジニアでもアプリが作れた!」や「Cursorでこんなことができた!」のような投稿が溢れかえり、世間がAIコーディングに非常に注目しているのがわかります。
私自身もエンジニアなので、業務でCopilotやClaude Codeの導入を進めたり、プライベートでGithub CopilotやGeminiを課金して使い倒しています。
一方で、最近「AIコーディングがあるからITエンジニアはもっと生産性高められるよね」みたいな声をよく聞くようになりました。「そう思う人がいる」という点に関しては同意であり否定するものではないものの「これが今の時点で事実なのか」という点に関しては疑問があります。
個人的に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開発の生産性を劇的に向上させるが、システム開発の生産性に関して限定的な効果にとどまっている状態だと感じています。
ですが今後プラクティスが充実していくとシステム開発でも大きな生産性向上を発揮できるようになっていくと思います。
昨日のベストプラクティスが今日には塗り替えれている、が頻繁に起こるくらい時代の流れも早いので継続的に情報は収集していきたいですね。
エンジニアリングマネージャー1年目で「自分のチームのアウトプットの最大化」の為に心がけたこと
気がついたら前回の記事から1年以上経過してしてまいました。。
今年の大きな出来事としては、本職の方で、エンジニアリングマネージャー(以下EM)にジョブチェンジしたことです。
元々テックリード的な役割で「まだまだ技術を極めていたい!」と思っていたのですが、せっかくの機会なので挑戦してみようと思い、今年はEMとしても頑張ってきました。
久しぶりの記事投稿とアドベントカレンダーにへの投稿も兼ねて、私のEM1年目の奮闘を書きます。
この記事はEngineering Manager Advent Calendar 2024 の15日目です。
続きを読むthirdweb-sdkが便利だからもっと頑張ってて欲しい話
記事を投稿しなさすぎて広告が表示されるようになってしまったので、久しぶりの投稿を兼ねて困ったことの吐き出し。
主にこちらの件について
ThirdWebのsdk、クライアント側は整って使いやすいけど、サーバー側(nodejs、Python)は、依存ライブラリが古くて他のパッケージとコンフリクト起きたり、ドキュメントが古かったりしてかなり厳しい
— せいうち (@sey3233) November 12, 2023
決してアンチthirdwebではなく、Web3開発でめちゃくちゃ使い勝手が良く、もっと良くなって欲しいの意図と、同じ箇所で引っかかった人に向けて記事です。
thirdweb-sdkは最高なので、Web3開発の際はぜひみなさんご利用ください。
続きを読むこちらの内容は2023年11月25日現時点での情報になります。今後のアップデートによりこの事象が発生しなくなることはあります。
