我が名はなんとか菜である!

主に技術系の記事を書きますが、ポエムも混入します。

そうは言ってもなんでもかんでもAIで書けばいいって話じゃなくない?

最近はよく知らない分野のコーディングでも Opus だの Codex だの使えば見てくれだけはいいコードを出すようになってきたね。

まあでも僕は逆張り野郎なんで、今日はほんまにそれでええんか?という話をする。

生成AIコーディングのことをネットの誰かがコードを手で書くことをマニュアル自動車に対してのオートマ自動車という表現を使っていた。

要するに自動車がATになったことで運転という行為の難易度が下がって民主化された、だから生成AIはコーディングを民主化したということを言いたいらしい。

しかしAT自動車はAT限定でも普通免許がないと乗れないが、プログラミングというのは1ヵ月で覚えましたみたいなやつが下手すると個人情報を扱うコードを無責任に書いて publish 出来てしまう世界である。

まあ現実世界の道路だって無免許同然みたいなやつらが運転しているということは否定はしないが、
せめて生成したコードが動くことだけを確認したらOKみたいな雑な生産行為を仕事でやるのをやめていただきたいなと思う。

今の僕の会社では全エンジニアに Claude Code Max を使わせてバリバリやっていくぜみたいな感じになっているが、とあるプロジェクトでそのレイヤーのコードを書いたことがない人を Claude Code 頼りなのかなんなのか知らんが無理やりアサインした結果、致命的な実装見落としが発生して僕がケツを拭いているというのが最近の状況である。

彼の書いたコードはなぜか日本語と英語のコメントが入り混じっており、自分で定義した定数を自分で使えてないというところから始まり、ひどいところではクリーンアーキテクチャの概念を無視して全てを presenter レイヤーに実装してくるみたいな感じだったので、最初にレビューを頼まれたときはかなりビビり散らかした。

まず、人が書いたコードが読めないというレベルの人にはエージェントコーディングはさせないほうがいいのではないかと思う。

コードを書いた経験が少ない人に共通するのは、単純に設計が甘いとかコードが汚いとかそういうところではなくて、タスクに対して適切な単位で実装をする力が弱いというところだと考えている。

そういう人が生成AIを使ってコードを書くと、逆に「実装しすぎ」ということが発生する。
その結果、実装者の手に負えなくなってコードにも見落としが発生するという具合なんじゃないかなと想像している。

なぜこういうことが起こるのかというと、今の生成AIは一通りの作業を終えた後に「必要ならこういうのもやっておきましょうか?」といういらん提案をしてくるせいなんじゃないかと思っている。
なので事前プロンプトでそういう余計な提案をやめさせたらある程度軽減されるのではないかと考えているが、これを書いている時点では前述の対応に忙殺されていたので提案は出来ていない。

そういうわけで、作業の粒度感を掴めていないうちは生成AIに頼ったコーディングはするべきじゃないなというのが最近の僕の意見である。

前の記事で「AIでコーディングは大量生産の時代になる」的なことを書いた覚えがあるが、
手で何かを作ったことがない人が工業機械の製作など出来ないように、その段階になるにはまだ人間側の習熟が必要だなと感じた。

まあそういうわけで最近はそんな感じの状況なんだけど、仕事で実装させてもらえない(給与テーブル的にマネージャクラスのため)ことが増えてきて
老害みたいなことを思うことが増えてきてしまった。

なんだか転職の足音も聞こえてきた気がするねぇ~

プログラマー諸氏が生成AIを使って生産性の瞬間最大を追うのは別にいいと思うけど、そのあとのメンテナンスをする人間や、その無責任に書かれたコードで動くアプリを使うユーザーのことを第一に考えてほしいなと願うばかり。