AIエージェントにプロジェクトの主導権を奪われないために
AIができないプロジェクト判断の記録は作業記録とは分けること
思いつきでアプリを作ることは驚くほど簡単になった。AIに欲しい機能を伝えればすぐコードを書いてくれる。会話を重ねたあとで、その内容からアプリを作るよう頼むだけでもまとまった成果物が手に入る。
たとえ一か月後にプロジェクトを開いても、ファイルの役割や使っているライブラリはAIに聞けばわかる。つまりプロジェクトが現在どうなっているかという理解はいつでも復元できた。
保存されないバイブ
しかし、自分が何を重視して何を後回しにしていたのかは戻ってこなかった。これは「再開するときにプロジェクトの方針を忘れた」というよりも、「そもそも明確な言葉にしていなかった」という方が近い。思いつきから始まる個人開発には明確な要件も期限もなく、こんなものがあったらよさそうだという感覚から始まる。自分は、作っているうちに目的や形が見えてくるのを楽しんでいた。
少なくともそれがバイブコーディングの良さだと思っていた。最初から完成形を決めない、まず動くものを作る、それを見て次に欲しくなったものを足していく。このやり方自体が悪いわけではない。問題はその場で共有していたバイブが次の開発セッションまで残らないことだ。コードや機能は保存される。それでも、なぜその機能を優先したのかは消えてしまう。どこまで作れば十分なのかもわからない。何をあえて後回しにしたのかも残らない。自分はこの現象を方針の揮発と呼びたい。
AIは局所的に正しい提案を無限に生み出す
AI開発では、この方針の揮発は起こりやすくなっている気がする。 例えば、以前の自分が重視していた方針は「設定項目を増やさず、まずは毎日使える最小限のものを完成させる」だったかもしれない。その一か月後、人間が久しぶりに開いたアプリを見て、ユーザーごとにテーマカラーを変えられたら面白そうだ、と思いつきでAIに依頼する。AIは目の前の要求を処理するのが非常に上手で、関連するファイルを探して必要なコードを書き、既存の実装へ自然に組み込む。その変更が自然である理由まで説明する。人間はもしかしたら、変更の内容に口出しをして議論を重ねることに時間を使うかもしれないが、最終的には説明に納得して実装を承認する。だが、「そのように反映された変更は当初の方針決めの時間を無駄にしてはいないか?」と、AIの側から人間に問いかけてくることは絶対にない。こうして全体の方向を誰も決めないまま、局所的には妥当な変更だけが高速で積み重なる。
方針とは答えではなく判断基準である
目標はどこへ行くかを示す。計画はどの道を通るかを示す。方針は道が分かれたときに何を基準に選ぶかを示す。開発中には予測できない判断が次々に生まれる。不具合を今すぐ直すのか。とりあえず動く実装と将来の変更に強い設計のどちらを選ぶのか。画面を洗練させるのか、それとも機能を増やすのか。方針はこれらの問いへの答えではない。答えを選ぶための基準だと思う。
方針がないプロジェクトも活発には見える。コードが増えて不具合が直り、改善案が実装される。それでも各作業をなぜ優先したのか説明できなければ、目についた問題に反応しているだけであり、決して良い状態ではないのだ。
方針を決めるのは結果を引き受ける者である
方針を決めるというのは結局のところどういうことなのか。ここでは「決断によって失われるものを引き受ける」と定義したい。速度を選べば品質上のリスクを負う。品質を選べば時間と費用がかかる。機能を増やせば複雑になる。対象を絞れば救えないユーザーが出る。AIは選択肢を示し、矛盾を指摘し、過去の決定との整合性を確かめられる。しかし選択によって何を諦めるかを引き受けることはできない。
AIに任せてよいのは方針に沿って進めることであり、何を方針とするかを暗黙のうちに決めることではない。すべてを人間が細かく指示する必要はない。ただAIが仕事を提案するたびに、それを今やることは自分たちの方針に沿っているかと問い直せる状態は保つ必要がある。プロジェクトの主導権とは作業を自分で行うことではない。何を作業として採用し、何をしないかを決め続けることなのだ。