ここ最近、ソフトウェアエンジニアが仕事にLLMを活用することが当たり前になった。
多くの一般的なエンジニアは個人の生産性向上を目的に利用している。VSCodeのGitHub Copilot拡張にはじまりClineやらCursorやら、個人の開発生産性をいかに上げるかにフォーカスしているもの言ってみればコードエディタや統合開発環境の延長としてのLLM活用。コパイロット的LLM活用とでも言おうか。
私のような下っ端エンジニアはコパイロット的LLM活用で十分満足してしまうのだが、テックリードやプラットフォームエンジニアなどレベルの高いエンジニアはDevinのようなAIエージェントを活用した開発も積極的にやるようになってきた。AIエージェントは指示出しが明確でタスクも細かくわけないと活用できない(かつコードレビューも必須)ので派遣社員さんを雇っているのに近い。これをコパイロット的LLM活用と比較して派遣社員的LLM活用とでも言えばいいかな。
ここからが本題、最近上記2つとは全く違う視点のLLM活用が増えてきたように思う。題名のようなLLM活用である
一つの業務をまるっとLLMで開発できないかとか、バックエンドだけ開発してフロントエンドは全部LLMに作らせようとか、まるっと開発全部お任せしちゃうLLM活用。
LLMに丸投げするのでこれを外注的LLM活用と呼んでいる。PdMやデザイナーから言われるならまだ理解はできるのだが、このとんでもないオーダーをエンジニアマネージャだったりCTOから指示される事例が増えてきたから困ったものである。
外注的LLM活用の何が怖いかというと大量のコードをLLMに生成させるのでコードの全容の把握ができない、なので当然コード品質の担保ができなくなる、品質担保ができないからセキュリティーリスクも爆上がりする。コードの全容の把握ができないサービスが障害を起こしたらどうなるのか、想像しただけで怖い。
外注的LLM活用を指向している人たちはコード品質やセキュリティーの問題はLLMが進化すれば無くなると考えているからタチが悪い(お前ら本当にエンジニアかと言いたくなる)。
最近仕事で外注的LLM活用に心酔したエンジニアマネージャとCTO(それぞれ別の企業)に遭遇してなんとなく危機感を覚えたのでここに記しておく。彼女彼らは技術力を軽視しプログラマをバカにする。ちなみに外注的LLM活用に心酔したCTOやEMがいる企業はソフトウェアエンジニアの採用を抑制する傾向がある(特にフロントエンドエンジニア)。あとCursorだったりCopilotのような個人の開発生産性をあげるようなLLM活用に予算を回すことはない。
ぜんぶVercelのv0が悪い、知らんけど。