Zen of AI Coding という記事を読んだ。コーディングエージェントを1年使い込んだ人が、AI時代の開発原則を16個にまとめたもの。Zen of Pythonのオマージュだ。
出発点はシンプルで、「コードを書くコストがほぼゼロになった。そこから全部変わる」という話。この前提から何が変わるかを一つずつ整理していて、構造がとてもいい。
コストが下がると何が変わるか
まずリファクタリングのハードルが下がる。「Reactを選んだけど2ヶ月で後悔した。エージェントに書き直させればいい」。一度決めたら戻れなかった技術選定が、仮置きになる。実際に著者は3ヶ月でCMSを4回スクラッチで作り直したらしい。間違った判断がそこまで痛くなくなると、とりあえず動くものを作って試すのが正解になる。綺麗な設計書よりも動くコードのほうがエージェントにとってはいいコンテキストになる、というのも面白い。
技術的負債も返しやすくなる。依存の更新、APIのマイグレーション、古いパターンの書き換え。どれもエージェントに投げれば終わる類の作業だ。負債がなくなるわけではないけど、返済コストが下がると「あとでやる」の言い訳が通らなくなる。
そしてボトルネックが移動する。実装がボトルネックでなくなると、10個を並行で作れてしまう。でも10個を並行でレビューして、判断して、リリースすることはできない。詰まるのはプロダクトの意思決定、要件定義、セキュリティレビュー、リリースフローのほうになる。ボトルネックはコードではなく人間の頭になった。
全部「コードが安くなった」という一点から導かれていて、説得力がある。
それでも速く作ればいいわけではない
「速く作ったゴミはゴミだ」。速さは気持ちいい。でもベロシティやコード行数で進捗を測るのは昔から悪手だった。何でもすぐ作れるようになった今だからこそ、何を作るかの判断に規律がいる。
「壊れ方を先に考えろ」。エンジニアの仕事はコードを書くことではなく、システムが壊れないことを保証することだ、と。実際に著者のエージェントは.envファイルをgitにコミットしようとしたらしい。こういうリアルな事故の話があるから信用できる。
ソフトウェアは作った瞬間から保守コストが発生する。プロダクトとして使われて初めて資産になる。作るのが簡単になった今、機能を足したくなる誘惑はどんどん強くなる。でも使われない機能を作っても負債が増えるだけだ。
他にも16個の原則すべてが読み応えあるので、ぜひ元記事を読んでほしい。