自分は旧時代のエンジニアになってしまったのでは


最近、生成AIによるバイブコーディングが一般化していくにつれて、自分の中でそことの向き合い方を考えていました。
個人的には、生成AIの出力をそのまま鵜呑みにするのではなく、内容を理解し必要に応じて訂正した上で、自分の責任として成果物を出すのがエンジニアリングだ—、というのが今の自分の結論でした。 それは今まで、コードやシステムを理解しようと努力し、その本質を分かった上で、修正や拡張をしようとし続けてきた自分のような人間にとっては、納得のいく結論に感じていました。
しかし、世の中の生成AIとの向き合い方は違います。 出力をそのまま出す人も増えてきました。システムを理解しなくてもバグを直すことも、追加機能を入れることもできる中、そのまま出す人と理解して出す人とでは、品質にこそ違いはあれど、はっきりと差が分かるものではなくなってきました。

こういう話をすると、AIに対する否定的な意見として「そういう理解してない人が、AIによって生み出した理解できないコードは、どこかで限界が来る」という声をよく聞きます。 しかし、現実は保守の時の理解もAI任せ、インシデント調査もAI任せ、修正もAI任せで、人間の認知を越えたシステムのメンテナンスは既にAIの作業へと移行しつつあります。
これは悪いことじゃありません。AIの台頭前の方が酷かったです。何年も動いているぐちゃぐちゃのコードを理解している人間は一人だけ。そんな現場はざらにありました。 誰も理解していないことすらあります。そんな中でも、AIを使えるエンジニアなら誰でもコードを書いたり保守をしたり、一定水準の作業ができるようになった今は、以前に比べてよくなったとは思います。そう。平均値が一気に上がったのです。

そして、その平均値っていうのが思った以上に世間の人が納得できるレベルだったというのが誤算というか、自分の中で辛いところなのかもしれません。
自分の所感として、世の人の多くは、生成AIがそのまま出した出力レベルのもので十分いい品質だと思っているように感じます。 自分は、もっとよくできると思うことが多いですし、何だこれと思って修正したり、軌道修正することも多々あります。しかし、それは70点を90点に押し上げるような作業です。
会社として、例えば上司やステークホルダーが70点でいいと思っていたとして、同じ時間で70点のものを3個出力する人間と、90点のものを1つしか出力しない人間、どちらが評価されるでしょうか?

馬を走らせることは馬に乗らない人から見たらすごいことです。馬に負担をかけずに走る人と、馬の負担も考えず爆走させる人、外から見たら速く走らせている人の方がすごく見えるかもしれません。
システムの本質を理解するエンジニアリングではなく、AIをできるだけ速く走らせるエンジニアリングが今の世の中では求められているように感じます。 しかし、自分は今までがあるからこそ、そういう認知負荷を越えたAIの使い方はできないと感じるのです。だからこそ、旧時代に縛られたエンジニアになってしまったんだなという気持ちになりました。

なら上流に行けば? そう思うこともあります。しかし、上流も同じ流れが来ています。 AIにより、上流の要件定義から開発、そして下流のテストまで行なわれることもあります。 人間の認知を越えたことが起きるため、当たり前のように意味の分からないことになったりしますし、保守性もへったくれもない状態になることもあります。
しかし、リリースまで行けたりすると、開発としては成功という扱いになります。 使いづらかったり、ユーザがつかなくても、それはビジネスとしての評価であって、開発手法を評価しなおすことはあまりありません。
何か失敗が起きても、AIに反省点を見つけさせるので、AI前提の改善にしかなりません。 そもそも一度楽を覚えた人間が、わざわざ人間の関与を増やして、人間の負荷を上げようなんて方向に倒すはずがありません。 AI君もそういう人間が嫌がることは提案しないので、余計たちが悪いです。

と、こういう悲観論が頭の中で巡り出したので、書き出しました。こうやって書いてみると、割と自分がずっと感じていた違和感の正体が分かった気がします。 自分はずっと「エンジニアに向いている」と思っていました。だからこの業界に居ました。 しかし、今は「エンジニアに向いてない」と思っています。なので、この業界に固執する意味もそんなにありません。 お金持ちになりたいし、そんなに儲からないエンジニアなんか辞めて、他に儲かりそうな職を探したいなって気持ちです。