(原文は英語。本記事はAIによる翻訳を著者本人が加筆修正したものです)
Claude Codeをはじめとするコーディング支援AIは、コードの生産コストを劇的に下げることで、ソフトウェアの構築方法を変えつつある。
特に触り始めは、あまりの速度でソフトウェアができるので、一種の中毒状態になることも少なくない。技術的知識をまったく持たずに、実用的なアプリを完成させてしまうケースも出てきている。だが気をつけなければいけないのは、AIは状態の管理や変更にかかるコストを、少しも安くしていない、ということだ。
ここで言う「状態」とは、次のようなものを指す:
- データベースマイグレーション:スキーマの変更とデータの移行は、依然として慎重な計画と実行時間を要する。
- インフラ変更:クラウドリソースのプロビジョニングや変更が速くなったわけではない。
- コードのデプロイと連携リリース:複数のリモートシステム、バックエンドサービス、フロントエンドクライアントが絡む複雑なリリースを、AIが魔法のように加速してくれるわけではない。
例えば、ちょっとした変更でも、後方互換性のないAPI変更を行う場合、複数の独立したリモートプロセスで状態を変更する必要があるため、デプロイコストは依然として高いままだ。
AIが真に輝くのは、ステートレスな技術的負債を一掃する場面だ。それが人間によるものか、AIによるものかは関係ない。AIエージェントが特に得意とするのは:
- 合理的なカバレッジを備えた包括的なテストスイートの作成。
- ルーティンなライブラリ更新の実行。
- 外部依存関係のベンダリングの処理。
決定論的に動作し、かつ信頼できる品質ゲートと厳格なリグレッションテストが整っていれば、数万行にわたる大規模なリファクタリングさえも、AIが成功裏に実行できる。
AIはアプリケーションのステートレスなロジックを魔法のように最適化できるが、永続データやシステム境界が絡む場面では力を発揮しにくい。なぜか?状態とはハードウェアそのものであり、ソフトウェアが飲み込むことができない領域だからだ。状態をめぐるバイブスロップ(バイブコーディングによる怠慢)は、いつか必ずツケとして返ってくる。