「AIのコードって、イマイチだよね」という声を、たまに聞きます。手直しのほうが大変だった、という話も。……それ、いつの経験でしょうか。
数年前には、それは事実でした。嘘でも誇張でもありません。ただ、経験には賞味期限があります。そして語りには、賞味期限の表示がありません。物差しが古いまま、目の前のコードを測ってしまうことがあります。
この辺りの混乱を整理する前提が、実はAIよりずっと前、2019年に書かれていました。
コード品質とソフトウェア品質は、別物です
Mark Seemann——『Code That Fits in Your Head』の著者が、2019年に「Code quality isn’t software quality」という短い記事を書いています。いわく、コード品質とソフトウェア品質は別物だと。
コード品質は内部の属性です。読みやすいか、変更しやすいか。見るのは開発者で、ユーザーからは一生見えません。ソフトウェア品質は外部の属性です。落ちないか、目的を果たすか、使いやすいか。ユーザーが見るのはこちらだけです。
この2つは対立概念ではなく、独立した2軸です。コードが荒れていても良く動くソフトウェアはありますし、その逆もあります。
「AIのコードの質」をめぐる議論が噛み合わないのは、多くの場合、この2軸が混線しているからだと思っています。片方は内部品質の作法——人間の美意識の話を、もう片方は外部品質の実利——動くかどうかの話をしているように見えます。同じ「品質」という言葉で、別の話をしています。AI以前に書かれた区別が、2026年の議論にこそ必要な前提だったのかもしれません。
読む人が、人間からAIに変わった
では、人間がコードを読まなくなったら、コード品質はどうなるのでしょうか。
同じSeemannが今年7月、「Does code quality still matter?」という記事で続きを書いています。短い関数や認知負荷の低い構造といった従来のルールは、人間の脳の制約に由来するもので、人間が読まないなら不要になっていく。ただし、と続きます。構造の良し悪しで、AIが変更に費やすコスト——トークン消費は変わる。つまり、AI固有の技術的負債は発生する、と。
これは推測にとどまらないようです。前回の記事で紹介したSonarの実験では、整理されたコードベースはエージェントのトークン消費が7〜8%減り、同じ箇所を読み直す回数が34%減りました。さらにこの8月、『Clean Code』のUncle Bob本人が、Matt Pocock氏との対談でこう証言しています。散らかったコードベースでは、エージェントは同じところを回り続け、しまいには降参する、と(要約)。
コード品質は消えていません。読み手が、人間からAIに変わった。だから、品質の中身も、新しい読み手に合わせて変わっていく。そういうことなのだと思います。
レビューは、ゲートから天井になる
読み手の交代は、レビューの意味も変えていくように思います。
従来のレビューは、書き手の間違いを止めるゲートでした。その裏には「レビュワーは書き手と同等以上に分かっている」という暗黙の了解がありました。この了解が、崩れつつあるのかもしれません。
実際にあった話です。AIが、将来の拡張に耐える書き方を選んでいたことがありました。もしそれに気づけていなければ、「そんなの要らないでしょう」と、YAGNI(You Aren’t Gonna Need It——「どうせ使わないから、今は作るな」という開発の経験則)の名の下に削っていたはずです。レビューを通った成果物は、レビュワーの理解の範囲に収まります。間違いを止めるゲートのつもりが、理解を超えた部分を削る天井として働くことがあります。
Uncle Bobが「エージェントのコードは読まない」と言う理由も、対談を聴くと同じ場所にありました。自分が読んで確かめていたら、自分の速度と理解がエージェントの上限になってしまう(要約)。天井を自覚した人の選択だと思います。ただしこの選択が、障害の夜にコードを読める人がいなくなるという別の問題と隣り合わせであることは、前回書いたとおりです。
ルールは手放しても、価値観は手放さない
では、何を手放して、何を残すのか。対談でのUncle Bobの整理は明快でした。人間のルール(discipline)をAIに課すのは誤り。しかし人間の価値観(values)を課すのは正しい(要約)。
短い関数、小さなクラスといった作法は、人間の脳の制約から生まれた、人間のためのルールです。読み手が変わったなら、手放してよい側なのでしょう。一方で、動くこと、壊さないこと、把握できること。こちらは読み手が誰であっても残る価値観だと思います。
興味深いのは、その価値観の守り方です。プロンプトで指図するより、型・リンター・テストといった決定論的なツールで縛るほうが効く。複雑度とカバレッジを組み合わせた古い指標や、ミューテーションテストのような、人間向けには廃れかけた検証手法を、エージェントの検証装置として復活させる。人間の目の代わりを、人間の目以外で用意する、という方向の話が続きました。
もうひとつ、対談の締めくくりの言葉が印象に残りました。文脈は、抽象化の歴史です。二進数からアセンブリへ、アセンブリからコンパイラへ。抽象度が一段上がるたびに、下の段の人たちは「これで全てが台無しになる」と言ってきた。しかし毎回、そうはならなかった。いまのAIも、その次の一段だ——そう振り返ったうえで、対談はこの言葉で締めくくられます。
All the same fundamentals exist for all the same reasons. The rules you throw away are the ones you’re going to pick up off the floor in a year and dust off and remember why you need them.
同じ基礎は、同じ理由で、すべて残っている。あなたが捨てたルールこそ、1年後に床から拾い上げて、埃を払いながら、なぜ必要だったのかを思い出すことになる。(訳)
怖いのは、人間の作法というルールを手放すことではなく、そのついでに基礎まで一緒に捨ててしまうことなのだと思います。AIがやってくれるからと基礎から離れれば、1年後に自分の手で拾い直す羽目になる。ルールと価値観の仕分けを誤るな、という警告として聞きました。
まとめ
コード品質とソフトウェア品質は、もともと独立した2軸である——この区別は、AI以前の2019年に書かれていました。AIの登場で消えたのはコード品質ではなく、変わったのは読み手です。人間からAIへ。そしてレビューはゲートから天井に変わりつつあり、私たちは、人間のためのルールと、残すべき価値観を仕分ける段階に入っているのかもしれません。
私自身、アセンブリからコンパイラの言語へ、道具が入れ替わっていく時代を現場で通ってきました。振り返れば、変わったのは書き方で、残ったのは基礎でした。Bobの締めの言葉に頷けるのは、あの入れ替わりを一度経験しているからだと思います。インパクトはとても大きいですが、AIは次の一段ですね。さらにその次はなにがくるんでしょう。
出典: Code quality isn’t software quality(Mark Seemann、2019年) / Does code quality still matter?(同、2026年7月) / Uncle Bob on Software Fundamentals in the Age of AI(Matt PocockチャンネルのYouTube対談、2026年8月)
