(原文は英語。本記事はAIによる翻訳を著者本人が加筆修正したものです)

Claude Codeをはじめとするコーディング支援AIは、コードの生産コストを劇的に下げることで、ソフトウェアの構築方法を変えつつある。

特に触り始めは、あまりの速度でソフトウェアができるので、一種の中毒状態になることも少なくない。技術的知識をまったく持たずに、実用的なアプリを完成させてしまうケースも出てきている。だが気をつけなければいけないのは、AIは状態の管理や変更にかかるコストを、少しも安くしていない、ということだ。

ここで言う「状態」とは、次のようなものを指す:

  1. データベースマイグレーション:スキーマの変更とデータの移行は、依然として慎重な計画と実行時間を要する。
  2. インフラ変更:クラウドリソースのプロビジョニングや変更が速くなったわけではない。
  3. コードのデプロイと連携リリース:複数のリモートシステム、バックエンドサービス、フロントエンドクライアントが絡む複雑なリリースを、AIが魔法のように加速してくれるわけではない。

例えば、ちょっとした変更でも、後方互換性のないAPI変更を行う場合、複数の独立したリモートプロセスで状態を変更する必要があるため、デプロイコストは依然として高いままだ。

AIが真に輝くのは、ステートレスな技術的負債を一掃する場面だ。それが人間によるものか、AIによるものかは関係ない。AIエージェントが特に得意とするのは:

  1. 合理的なカバレッジを備えた包括的なテストスイートの作成。
  2. ルーティンなライブラリ更新の実行。
  3. 外部依存関係のベンダリングの処理。

決定論的に動作し、かつ信頼できる品質ゲートと厳格なリグレッションテストが整っていれば、数万行にわたる大規模なリファクタリングさえも、AIが成功裏に実行できる。

AIはアプリケーションのステートレスなロジックを魔法のように最適化できるが、永続データやシステム境界が絡む場面では力を発揮しにくい。なぜか?状態とはハードウェアそのものであり、ソフトウェアが飲み込むことができない領域だからだ。状態をめぐるバイブスロップ(バイブコーディングによる怠慢)は、いつか必ずツケとして返ってくる。